关于mysql:mysql基础查询

4次阅读

共计 4587 个字符,预计需要花费 12 分钟才能阅读完成。

第一章: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
正文完
 0