MySQL中select语句介绍及使用示例
数据表都已经创建起来了,我们就可以用自己喜欢的方式对数据表里面的信息进行检索和显示了,下面为大家讲解下MySQL中select语句的应用,感兴趣的碰可以学习下 数据表都已经创建起来了,假设我们已经插入了许多的数据,我们就可以用自己喜欢的方式对数据表里
数据表都已经创建起来了,我们就可以用自己喜欢的方式对数据表里面的信息进行检索和显示了,下面为大家讲解下MySQL中select语句的应用,感兴趣的碰可以学习下
数据表都已经创建起来了,假设我们已经插入了许多的数据,我们就可以用自己喜欢的方式对数据表里面的信息进行检索和显示了,比如说:可以象下面这样把整个数据表内的内容都显示出来
select * from president;
也可以只选取某一个数据行里的某一个数据列
select birth from president where last_name='Eisenhower';
select语句的通用形式如下:
select 你要的信息
from 数据表(一个或多个)
where 满足的条件
select语句有几个子句,他们的各种搭配能帮你查出最感兴趣的信息,这些子句可以很简单,也可以很复杂,看看作者是如何详细讲解的
1、用各种操作符来设定检索条件
要想让select语句只把满足特定条件的记录检索出来,就必须给它加上where字句来设置数据行的检索条件。只有这样,才能有选择地把数据列的取值满足特定要求的那些数据行挑选出来。可以针对任何类型的值进行查找,比如说,对数值进行搜索
select * from score where score>95; //显示所有分数在95分以上的信息
也可以针对字符串值进行查找
select last_name,first_name from president where last_name='Tom'; //找出所有姓tom的总统
还可以对不同类型的值进行组合查找
select last_name,first_name,birth,state from president
where birth
//找出1950年前出生于VA州或BA州的总统
可见 where子句中可以使用的是算术操作符(+-*/%),比较操作符(=)以及逻辑运算符,我们应该熟练理解这些操作符的含义(都很简单)
2、NULL 值的特别处理
这是一种不属于任何类型的值。它通常用来表示“没有数据”“数据未知”“数据缺失”“数据超出取值范围”“与本数据列无关”“与本数据列的其它值不同”等多种含义。在许多情况下,NULL 值是非常有用的。
我们的各种操作符是不能对NULL 值进行处理的,如果相对NULL 值进行查找,用的是 is null 或 is not null 来进行判断,举例如下:
select last_name,first_name,birth,state from president
where death is null; //找出所有没死的总统
在某些情况下,NULL 值是很有用的类型,大家慢慢就会理解的。
3、查询结果进行排序
一 般说来,如果创建了一个数据表并向里面插入了一些记录,当发出一条select * from name命令的时候,数据记录在查询结果中的先后顺序通常与它们被插入时的先后顺序一样.这当然符合我们的思维习惯.但这只是一种"想当然"的假设而已, 事实上,但记录被删除时,数据库中会产生一些空的区域,MYSQL会用新的记录来填补这些区域,也就是说,这个时候本假设就不正确了.因此我们必须记住一 点,从服务器返回的记录行的先后顺序是没有任何保证的!如果想要按照一定的顺序,就必须使用order by 子句来设置这个顺序.
select last_name,first_name,birth,state from president
order by last_name; //让总统们的名字按字母顺序排列
还可以设置排列的升序降序
select last_name,first_name from president
order by state DESC,last_name ASC;
//先按照出生地的降序排列,同出生地的按照姓氏的升序排列
注意:如果结果中含有NULL 值,默认情况下他们总是出现在查询结果的开头。
4、限制查询结果中数据行个数
这个简单,只要用limit 子句就可以了,看两个例子:
select last_name,first_name,birth,state from president
order by birth limit 5; //只想看前5个
order by birth limit 10,5; //返回从第11个记录开始的5个记录(跳过了10个)
小技巧:从president表中随机找出一个总统来玩:
select last_name,first_name,birth,state from president
order by rand() limit 1; //这是用了表达式求值的方法,在哪里都管用
5、对输出列进行求值和命名
为了提高效率,MYSQL还可以把表达式的计算结果当作输出列的值。表达式可以很简单,也可以很复杂。例如:下面这个查询有两个输出列,前一个输出列对应一个非常简单的表达式(一个常数),而后一个输出列则对应着一个使用了多个算术运算符和两个函数调用的复杂表达式。
Select 17,format(sqrt(3*3+4*4),0))
输出:17 5
再看这个命令:把两个输出列合并成一个
select concat(first_namem,' ‘,last_name),concat(city,',',state) from president;
如果合并之后输出列的标题过长,则可以给其一个别名,如:
select concat(first_namem,' ‘,last_name) as name,
concat(city,',',state) as birth place
from president;这样就比较美观了。
6、和日期有关的问题
首先记住:在MYSQL中,年份是放到最前面的!我们通常对日期进行下列操作:
按日期进行排序
查找某个日期或日期范围
提取日期中的年,元,日各个部分
计算两个日期的间隔
用一个日期求出另外一个日期
看例子:
select * from event where date='2002-10-01' //看看这天有何考试信息?
select last_name,first_name,birth,state from president
where death>'1900-01-01' and death
三个函数year,month,dayofmonth可以分别分离出日期中的年月日来。
select last_name,first_name,birth from president
where month(birth)=3; //谁生在3月 ?
where month(birth)=7 and dayofmonth(birth) =6; //谁生在7月6日?(汤姆克鲁斯?)
函数to_days可以把日期转换为天数。
select last_name,first_name,birth to_days(death)-to_days(birth) as age from president
可以看看这帮家伙都活了多少天!你自己把它改为年吧。
日期值的减法运算还能帮我们计算出现在距离某个特定日期还有多长的时间,这正是我们用来找到需要在近期内缴纳会费的会员的办法:
select last_name,first_name,expiration from member
where (to_days(expiration)-to_days(curdate())
7、模式匹配
有些情况下,模糊查询是很必要的,我们使用like和not like加上一个带通配符的字符串就可以了。共有两个通配符”_”(单个字符)和”&”(多个字符)
select concat(first_namem,' ‘,last_name) as name,
where last_name like ‘W%'; //找到以W或w开头的人
where last_name like ‘%W%'; //找到名字里面W或w开头的人
8、设置和使用SQL变量
MYSQL 3.23.6以上的版本可以使用查询结果来设置变量,我们就能够方面的把一些结果保存起来以供他用。变量的命名规格是:@name, 赋值语法是 @name:=value ( pascal?) 使用起来也简单:
select @birth:=birth from president
where last_name ='adsltiger'; //执行完成后我们就就会有一个@birth变量可用
用一下试试:
select concat(first_namem,' ‘,last_name) as name from president
where birth
*9、生成统计信息
单纯依靠手工来生成统计信息是一项既艰苦又耗时还容易出错的工作,如果我们能熟练掌握用数据库来生成各种统计信息的技巧,他就会成为很有威力的信息处理工具。作者在这里用了许多篇幅讲这个主题,为了便于大家理解,我分解开来论述:
9.1 找出一组数据中到底有多少种不同的值是一项比较常见的统计工作,而关键字distinct就可以把查询结果中的重复数据清除掉。如
select distinct state from president //看看美国总统们都来自那些州?(重复的不计)
9.2用count()函数来统计相关记录的个数,注意其使用方法:count(*)计算所有的,NULL也要;count(数据列名称) NULL值不计算在内。
select count(*) from president;
9.3如果我们想知道班级内的男女生数目?该如何查询呢?最简单的方法是
select count(*) from student where sex='f';
select count(*) from student where sex='m
但是如果使用count函数结合group by关键字,一行命令就搞定了
select sex,count(*) f rom student group by sex;
我们可以看到,与反复使用彼此类似的查询来分别统计某数据列不同取值出现次数的做法相比,,把count(*)和group by字句相结合使用有许多优点,主要表现在:
在开始统计自前,不必知道被统计的数据列里面有多少种不同的取值
因为只用了一个查询命令,我们可以对输出做排序的处理
select state,count(*) as count from president
group by state order by count desc limt4; //看看出生总统最多的前四个州是哪几个?
9.4除了count(),我们还用其他一些统计函数,如求出最小值的min(),求最大值的max(),求和的sum(),求平均值的avg(),在实际工作中,这些函数时经常用到的!
*10、从多个表提取信息
我 们目前的例子都是从一个表里面提取信息,但数据库的真正威力还在于用“关系”来综合多个数据表里面的记录,这种操作称之为“关联”或“结合”我们可以看 到,select需要给出多个数据表里面的信息(不可重复);from需要知道从哪几个表里面做事;where则对几个表之间的关联信息作出详细的描述。
首先我们要学习最可靠的数据列引用方式:数据表名.数据列名。这样在查询中就一定不会混淆这个数据列到底在哪一个表里。
例子1:查询某一天内的学生们的考试成绩,用学号列出。
select scroe.student_id,event_date,score.score.event.type
from event,score
where event.date='2003-09-12'
and event.event_id=score.event_id
首先,利用event数据表把日期映射到一个考试事件编号,在利用这个编号把score表内相匹配的考试分数找出来。关联两个表,一个查询搞定。
例子2:查询某一天内的学生们的考试成绩,用姓名列出。
select student.name event.name,score.score,event.type
form event,score,student
where event.date='2003-09-12'
and event.event_id= score.event_id
and scroe.student_id=student.student_id;
关联三个表,一个查询搞定。
例子3:查询一下缺席学生的名字,学号,缺席次数
select student.student_id,student_name
count(absence.date) as absences
from student,absence
where student.student_id=absence.student_id //关联条件
group by student.student_id;

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

Navicat lui-même ne stocke pas le mot de passe de la base de données et ne peut récupérer que le mot de passe chiffré. Solution: 1. Vérifiez le gestionnaire de mots de passe; 2. Vérifiez la fonction "Remember Motway" de Navicat; 3. Réinitialisez le mot de passe de la base de données; 4. Contactez l'administrateur de la base de données.

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

La copie d'une table dans MySQL nécessite la création de nouvelles tables, l'insertion de données, la définition de clés étrangères, la copie des index, les déclencheurs, les procédures stockées et les fonctions. Les étapes spécifiques incluent: la création d'une nouvelle table avec la même structure. Insérez les données de la table d'origine dans une nouvelle table. Définissez la même contrainte de clé étrangère (si le tableau d'origine en a un). Créer le même index. Créez le même déclencheur (si le tableau d'origine en a un). Créez la même procédure ou fonction stockée (si la table d'origine est utilisée).

Affichez la base de données MySQL avec la commande suivante: Connectez-vous au serveur: MySQL -U Username -P mot de passe Exécuter les bases de données Afficher les bases de données; Commande pour obtenir toutes les bases de données existantes Sélectionnez la base de données: utilisez le nom de la base de données; Tableau de vue: afficher des tables; Afficher la structure de la table: décrire le nom du tableau; Afficher les données: sélectionnez * dans le nom du tableau;

NAVICAT pour MARIADB ne peut pas afficher directement le mot de passe de la base de données car le mot de passe est stocké sous forme cryptée. Pour garantir la sécurité de la base de données, il existe trois façons de réinitialiser votre mot de passe: réinitialisez votre mot de passe via Navicat et définissez un mot de passe complexe. Affichez le fichier de configuration (non recommandé, haut risque). Utilisez des outils de ligne de commande système (non recommandés, vous devez être compétent dans les outils de ligne de commande).

Étapes pour effectuer SQL dans NAVICAT: Connectez-vous à la base de données. Créez une fenêtre d'éditeur SQL. Écrivez des requêtes ou des scripts SQL. Cliquez sur le bouton Exécuter pour exécuter une requête ou un script. Affichez les résultats (si la requête est exécutée).

Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.
