结构化查询语句SQL
SQL是结构化查询语言(Structure Query Language)
SQL主要可划分为以下3个类别:
<1>DDL(Data Definition Languages)语句
数据定义语言,这些语句定义了不同的数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括create、drop、alter等
<2>DML(Data Manipulation Language)语句
数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括insert、delete、update和select等。
<3>DCL(Data Control Language)语句
数据控制语句,用于控制不同的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。
库操作
查询数据库:
show databases;
创建数据库:
create database chatDB;
删除数据库:
drop database chatDB;
选择数据库:
use chatDB;
表操作
创建数据表
创建MySQL数据表需要:表名、表字段名、定义每个表字段
CREATE TABLE user(
id INT UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
name VARCHAR(50) UNIQUE NOT NULL,
age TINYINT NOT NULL,
sex ENUM('M','W') NOT NULL
)engine=INNODB DEFAULT CHARSET=utf8;
查看创建当前表的SQL语句
show create table user\G;
删除数据表
删除表(表和表中数据都删除)
DROP TABLE table_name;
删除表中某一条数据
DELETE FROM table_name [WHERE Clause];
修改数据表
插入数据
insert into user(name,age,sex) values ('bsy',20,'M');
insert into user(name,age,sex) values ('xxx',22,'W');
insert into user(name,age,sex) values ('hhh',34,'M');
insert into user(name,age,sex) values ('aaa',65,'W');
insert into user(name,age,sex) values ('bbb',54,'M');
或
insert into user(name,age,sex) values ('bsy',20,'M'),('xxx',22,'W'),('hhh',34,'M'),('aaa',65,'W'),('bbb',54,'M');
两者区别:第一种每一条SQL都执行一遍以下过程:
1,client和serverTCP三次握手
2,client发送sql到server上接收并处理,返回处理结果
3,server和client断开连接,TCP四次挥手
而第二种只需执行一遍以上操作,减少网络资源的损耗
更新数据
update user set age=age+1 where id=3;
update user set age=23 where name like 'zhang%';
查询数据表
查询数据表中的数据
select * from user;
select id,nickname,name,age,sex from user;
select id,name from user;
select id,nickname,name,age,sex from user where sex='M' and age>=20 and age<=25;
select id,nickname,name,age,sex from user where sex='M' and age between 20 and 25;
select id,nickname,name,age.sex from user where sex='W' or age>=22;
去重查询
select distinct * from user;
空值查询
select * from user where name is not null;(或null)
union合并查询
union[ALL | DISTINCT] #注意:union默认去重,不用修饰distinct,all表示显示所有重复值
select name,age,sex from user where age>=21 union all select name,age,sex from user where sex='M';
带in子查询
select * from user where age in (20,21);
select * from user where age not in (20,21);
select * from user where id in (select stu_id from grade where score>=60.0);
查看数据库中存在的表
show tables;
查看数据库中的表的结构
desc user;或desc user\G;