MySQL语法练习

DDL-数据库操作

查询所有数据库

SHOW DATABASES;

查询当前数据库

SELECT DATABASE();

创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

删除数据库

DROP DATABASE [IF EXISTS] 数据库名;

使用数据库

USE 数据库名;

DDL-表操作-查询

查询当前数据库所有表

SHOW TABLES;

查询表结构

DESC 表名;

查询指定表的建表语句

SHOW CREATE TABLE 表名;

DDL-表操作-创建

CREATE TABLE 表名(
	字段1 字段1类型 [COMMENT 字段1注释],
	字段2 字段2类型 [COMMENT 字段2注释],
	......
	字段n 字段n类型 [COMMENT 字段n注释]
)[COMMENT 表注释];

案例1

MySQL语法练习_第1张图片

CREATE TABLE emp(
	id INT COMMENT '编号',
	workno VARCHAR(10) COMMENT '工号',
	name VARCHAR(10) COMMENT '姓名',
	gender char(1) COMMENT '性别',
	age TINYINT UNSIGNED COMMENT '年龄',
	idcard CHAR(18) COMMENT '身份证号',
	entrydate DATE COMMENT '入职时间'
)COMMENT '员工表';

DDL-表操作-修改

添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];

为emp表增加一个新的字段“昵称”为nickname,类型为varchar(20)

ALTER TABLE emp ADD nickname varchar(20) COMMENT '昵称';

修改字段

修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

将emp表的nickname字段修改为username,类型为varchar(30)

ALTER TABLE emp CHANGE nickname username VARCHAR(30) COMMENT '用户名';

删除字段

删除字段

ALTER TABLE 表名 DROP 字段名;

将emp表的字段username删除

ALTER TABLE emp DROP username;

修改表名

ALTER TABLE 旧表名 RENAME TO 新表名; 

将emp表的表名修改为employee

ALTER TABLE emp RENAME TO employee;

DDL-表操作-删除

删除表

DROP TABLE [IF EXISTS] 表名;

删除指定表,并重新创建该表

TRUNCATE TABLE 表名;

DML- 添加数据

给指定字段添加数据

INSERT INTO 表名 (字段1,字段2,) VALUES (1,2,);

给全部字段添加数据

INSERT INTO 表名VALUES (1,2,) ;  对应表中字段(值1对应字段1

批量添加数据

INSERT INTO 表名 (字段1,字段2,) VALUES (1,2,),(1,2,);
INSERT INTO 表名VALUES (1,2,), (1,2,);

DML-修改数据

修改数据

UPDATE 表名 SET 字段名1=1,字段名2=2,...[WHERE 条件];

修改id为1的数据,将name修改为可爱

UPDATE employee SET name = '可爱' WHERE id = 1;

修改id为1的数据,将name修改为 许 ,gender 修改为 女

UPDATE employee SET name = '许' , gender = '女' WHERE id = 1;

将所有的员工入职日期修改为 2008-01-01

UPDATE employee SET entrydate = '2008-01-01';

DML-删除数据

删除数据

DELETE FROM 表名 [WHERE 条件];

MySQL语法练习_第2张图片
删除gender 为女的员工

DELETE FROM employee WHERE gender = '女';

删除所有的员工

DELETE FROM employee ;

DQL- 基本查询

查询多个字段

SELECT 字段1 , 字段2 , ... FROM 表名;

查询返回所有字段

SELECT * FROM 表名;

设置别名

SELECT 字段1 [ AS 别名1 ] , 字段2 [ AS 别名2 ] ... FROM 表名;

去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

查询指定字段name,workno,age 返回

SELECT name , workno , age FROM emp;

查询所有字段返回

SELECT * FROM employee;

查询所有员工的工作地址,起别名

SELECT workaddress AS '工作地址' FROM emp;

查询所有员工的工作地址(不要重复)

SELECT DISTINCT workaddress FROM emp;

DQL-条件查询

条件查询的基本语法

SELECT 字段列表 FROM 表名 WHERE 条件列表;

MySQL语法练习_第3张图片
MySQL语法练习_第4张图片
查询年龄等于88的员工

SELECT * FROM emp WHERE age = 88;

查询年龄小于20 的员工信息

SELECT * FROM emp WHERE age < 20 ;

查询年龄小于等于20的员工信息

SELECT * FROM emp WHERE age <= 20 ;

查询没有身份证号的员工信息

SELECT * FROM emp WHERE idcard IS NULL;

查询有身份证号的员工信息

SELECT * FROM emp WHERE idcard IS NOT NULL;

查询年龄不等于88的员工信息

SELECT * FROM emp WHERE age != 88;
SELECT * FROM emp WHERE age <> 88;

查询年龄在15岁(包含)到20岁(包含)之间的员工信息

SELECT * FROM emp WHERE age >= 15 && age <= 20;
SELECT * FROM emp WHERE age >= 15 AND age <= 20;
SELECT * FROM emp WHERE BETWEEN 15 and 20;

查询性别为女且年龄小于25岁的员工信息

SELECT * FROM emp WHERE gender = '女' AND age < 25;

查询年龄等于18或20或40的员工信息

SELECT * FROM emp WHERE age = 18 OR age = 20 OR age = 40;
SELECT * FROM emp WHERE age IN(18,20,40);

查询姓名为两个字的员工信息

SELECT * FROM emp WHERE name LIKE '__';

查询身份证号最后一位是X的员工信息

SELECT * FROM emp WHERE idcard = '%X ';

DQL-聚合函数

NULL值不参与所有聚合函数运算。

将一列数据作为一个整体,进行纵向计算。
MySQL语法练习_第5张图片
基本语法

SELECT 聚合函数(字段列表) FROM 表名;

统计该企业员工数量

SELECT COUNT(*) FROM emp;

统计该企业员工的平均年龄

SELECT AVG(age) FROM emp;

统计该企业员工的最大年龄

SELECT MAX(age) FROM emp;

统计该企业员工的最小年龄

SELECT MIN(age) FROM emp;

统计西安地区员工的年龄之和

SELECT SUM(age) FROM emp WHERE workaddress = '西安';

你可能感兴趣的:(MySQL,mysql,数据库,sql)