第一章:DDL和DML语言
1.DDL:
DDL:DDL是一种数据定义数据结构和修改的语言,也就是说查询表结构,他的全称为Data Definition Language
2.DDL-数据库操作
1.DDL查询
-- 查询所有数据库
SHOW DATABASES
-- 查询当前数据库的所有表
SHOW DATABASES 数据库名
-- 例:
SHOW DATABASES jzlg
2 .DDL创建
-- 创建数据库
CREATE DATABASE 数据库
-- 例:
CREATE DATABASE KJZZ
3.DDL删除
删除数据库
DAOP DATA 数据库名;
-- 例
DAOP DATA hhhh;
4.DDL 使用数据库
-- 使用之前创建的数据库
use 数据库
3.DDL-表操作-查询(查询表结构)
1.DDL查询
-- 查询当前数据库的表
SHOW TABLES;
-- 例:
show tables jzlg
2..DDL查询表结构
-- 查询表结构
DESC 表名
-- 例
DESC user
3.查询指定表的建表语句
-- 查询指定表的建表语句
SHOW CREATE TABLE 表名
-- 例
SHOW CREATE TABLE user
4.DDL-表操作- 创建
1.DDL表创建
CREATE TABLE 表名(
子段1 数据类型(COMMENT 字段1 注释),
字段2 数据类型(COMMENT 字段2 注释),
字段3 数据类型(COMMENT 字段3 注释)
字段4 数据类型(COMMENT 字段4 注释)
....
)(COMMENT 表注释)
-- 例
CREATE TABLE user(
id int(COMMENT 用户id),
name varchar(10)(COMMENT 用户名字),
gender varchar(10)(COMMENT 用户性别)
avg data(COMMENT 年龄)
....
)(COMMENT 用户表)
5.DDL-表操作-修改
1.DDL添加字段
-- 添加字段
ALTER TABLE 表名 字段名 数据类型(长度) comment 注释
-- 案例 为user表添加一个新的昵称为nickname和数据类型为varchar(20)
ALTER TABLE USER nickname varchar(20)
2.DDL修改字段
-- 修改数据类型
ALTER TABLE 表名 字段名 新数据类型(长度) comment 注释
-- 例:
ALTER TABLE user nickname char(10)
-- 修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) comment 注释
-- 例
ALTER TABLE user CHANGE nickname name varchar(20)
3.DDL删除字段
-- 删除字段
ALTER TABLE 表名 DROP 字段名
-- 例
ALTER TABLE user DROP name
4.DDL修改表名
-- 修改表名
ALTER TABLE 表名 RENAME TO 新表名
-- 例
ALTER TABLE user RENAME TO user1
5.DDL删除表
-- 删除表
DROP TABLE [IF EXISTS] 表名
例
DRIP TABLE [IF EXISTS] user
-- 删除指定表, 并重新创建表
TRUNCATE TABLE user`
2.DML:
DML:是用来对数据库中的表中的数据进行增删改查的,全称是“Data Manipulation Language"
1.DML-数据操作
1添加数据
-- 给指定字段添加数据
INSERT INTO 表名(字段名1,字段名2,...) VALUES(值1,值2);
-- 例
insert into user(id,name)
VALUES(1,'陈礼浩')
-- 给全部字段添加数据
insert into 表名 values(值1,值2)
-- 例
insert into user(2,'陈礼浩')
-- 批量添加数据
insert into 表名 (字段1,字段2) values(值1,值2),
(值1,值2)
-- 例
insert into user values(3,'哈哈哈')
(4,'牛牛牛')
insert into 表名 values(值1,值2),
(值1,值2)
-- 例
insert into user values(5,'qqq')
(6,'666')
注意:1.插入数据时,指定的字段要和值一一对应
2.字符串和日期数据应该包含在引号中
3.插入的数据大小,应该在字段的规定的范围中
4.插入多条数据要用逗号分隔
2修改数据
-- 修改数据
UPDATE 表名 SET 字段1=值1,wher (条件)
-- 例1:修改id为1的数据,将name改为666
UPDATE user SET name=666 where id=1
-- 例2: 修改id为1的数据,将name的值修改为哈哈哈,gender修改为女
UPDATE user set name=哈哈哈,gender=女 where id=1
-- 例3: 将所有的员工的入职日期都改为2008-1-1
UPDATE user set entrydate=2008-1-1
-- 因为他的说是将所有的员工改,所以没有条件
3删除数据
-- 删除数据
DELETE from 表名 where 条件
-- 例 将id为1的数据删除
DELETE from user where id=1
-- 删除某一字段的值
UPDATE user set name=null
注意:
1.DELETE 语句的条件可以有,也可以没有,如果没有条件,则整张表的数据都会被删除
2.DELETE 语句不能删除某一字段的值(可以使用 update)
第二章:DQL和DCL语言
1.DQL
1.1DQL介绍:
DQL是数据查询语言,用于查询数据库中的数据,全称是:Data QueryLanguage
1.2DQL的语法:
select 字段名 from where 条件 GROUP BY 分组字段 HAVING 分组后条件 ORDER BY 排序字段 LIKE 分页参数
1.3基础查询
-- 1.查询整个表的字段
select * from 表名
-- 例
select * from user
-- 2.查询多个字段
select 字段1,字段2 from 表名
-- 例
select id,name from user
-- 3.设置别名
select 字段1 AS 别名,字段2 AS 别名 from 表名
-- 例
select id as a,name AS b from user
-- 4.去出重复记录
select 字段 from 表名
-- 例
select DISTINCT name from user
1.3.1练习
-- 1查询指定字段name,workno,age
select name,workno,age from emp
-- 2查询所有字段
select * from emp
-- 3查询所有员工的工作地址,起别名
select workaddress as '工作地址' from emp
-- 4查询公司员工的上班的地址
select DISTINCT workaddress from emp
1.4条件查询
-- 1.条件查询的语法
select 字段 from 表名 where 条件
-- 2条件
比较运算符 功能
> 大于
>= 大于或等于
< 小于
<= 小于或者等于
= 等于
<> 或!= 不等于
BETWEEN ...AND... 在多少到多少之间
IN(...) 在in括号里面的多个值,多者选一
LIKE 占位符 模糊查询(_代替一个字符,%代替多个字符)
IS NULL 是null
逻辑运算符 功能
and 或 && 并且
or或|| 或者
not或! 非,不是
1.4.1练习
-- 1.查询年龄等于88的员工
select * from emp where age=88
-- 2查询年龄小于22的员工信息
select * from emp where agee < 22
-- 3查询年龄小于或等于20的员工信息
select * from emp where age <=20
-- 4 查询没有身份证号的员工信息
select * from emp where idcard is null
-- 5查询有身份证号的员工信息
select * from emp where idcard is not null
-- 6 查询年龄不等于88的员工
select * from emp where age != 88
-- 7查询年龄在15岁(包含)到20岁(包含)之间的员工信息
select * from emp where age in (15,20)
select * from emp between age 15 and 20
-- 8查询性别为女且年龄小于25岁的员工信息
select * from emp where avg=女 and age<25
-- 9查询年龄等于18或20或40的员工
select * from emp where age=18 or 20 or 40
select * from emp where age in (18,20,40)
-- 10查询姓名为两个字段的员工
select * from emp where name like'__'
-- 11查询身份证号最后一位是x的员工信息
select * from emp where idcard like '%x'
1.5聚合函数
-- 1聚合函数介绍:
将一例数据看做为整体,进行计算
-- 2函数分类
max()求最大的值
min()求最小的值
avg()求平均值
sun()求总合
count()求个数
-- 3语法
select 聚合函数(字段名) from 表名
1.5.1练习
-- 1 统计该企业的员工数量
select count(workaddress) from emp
-- 2统计该企业员工的年龄的平均年龄
select sun(age) from emp
-- 3 统计该企业员工的最大年龄
select max(age) from emp
-- 4 统计该企业员工的最小年龄
select min(age) from emp
-- 5 统计西安地区员工的年龄的和
select sun() from where name='西安'
注意:所有的null值不参与聚合函数计算
1.6分组查询
-- 1.语法
select * from 表名 where 条件 GROUP BY 分组字段名 having 分组条件
-- 例
select * from emp where id=1 group by id having id=1
-- -- 注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
1.6.1练习
-- 查询男同学和女同学各自的数学平均分
select avg(math) from su group by sex
-- 查询男同学和女同学各自的数学平均分,以及各自人数
select avg(math) ,count(sex) from sc group by sex
-- 查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组
select avg(math), count(sex) from sc where math <70 group by sex
-- 查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个的
select avg(math), count(sex) from sc where math <70 group by sex having count()
1.7分页查询
-- 1.语法
select * from 表名 limit 起是索引,查询的页数
-- 例
select * from sc limit 0,0
-- 2怎么求索引呢?
起始索引 = (当前页码 - 1) * 每页显示的条数
1.7.1练习
-- 从0开始查询,查询3条数据
select * from sc limit 0,3
-- 每页显示3条数据,查询第一页数据
select * from sc limit 0,3
-- 每页显示3条数据,查询第二页数据
select * from sc limit 3,3
-- 每页显示3条数据,查询第三页数据
select * from sc limit 6,3