mysql基础所有语法

1.DDL语句应用

Data Definition Language,数据定义语言,简称DDL,用于对库和表的管理

– 创建数据库
create database 数据库名

– 判断数据库是否存在,不存在再创建
create database if not exists 数据库名

– 在创建时指定数据库编码
create database 数据库名 character set 字符名称

– 查看所有的数据库
show databases

– 查看某个数据库定义信息
show create database 数据库名

– 使用数据库
use 数据库名

– 修改数据库字符集语法
alter database 数据库名 character set 字符集名称

– 删除数据库
drop database 数据库名
– 创建student表包含:id整数, name变长字符串长20, age整数, sex性别定长型1, birthday字段日期类型
create table student(
id int,
name varchar(20),
age int,
sex char(1),
birthday date
);
– 查看某个数据库中的所有表
show tables;

– 查看某个表结构
desc 表名;

– 查看创建表的SQL语句
show create table 表名;

– 创建相同的表结构
create table 新表名 like 旧表;

– 查收表的结构
desc 表名;

– 添加表列ADD
alter table 表名 add 字段名 数据类型;

– 修改列类型MODIFY
alter table 表名 modify 字段名 新的数据类型;

– 修改列名和类型 CHANGE
alter table 表名 change 旧列名 新列名 数据类型;

– 删除列 DROP
alter table 表名 drop 列名;

– 修改表名
rename table 旧表名 to 新的表名;
– 直接删除表drop table 表名;-- 判断表是否存在再删除表drop table if exists 表名;

2. DML语句

Data Manipulation Language,数据操作语言,简称DML,增删改

– 插入全部字段,可以不用写字段名
insert into 表名 values (值1,值2…);

– 插入部分的字段,未插入字段的值默认是NULL
insert into 表名 (列名1,列名2) values(值1,值2);

– 插入多条记录
insert into 表名 values(值1,值2),(值1,值2),(值1,值2);

3.3.2 更新记录
不带条件修改数据,修改所有行的记录update 表名 set 字段名=值-- 带条件修改数据,修改满足条件的记录update 表名 set 字段名=值 where 条件-- 一次修改多个字段值update 表名 set 字段名1=值1, 字段名2=值2

– 不带条件删除数据(删除表中所有的记录,只删除记录不删除表结构)
delete from 表名

– 带条件删除数据(删除符合条件的记录,只删除记录不删除表结构)
delete from 表名 where 条件

– 与delete删除的记录的区别
– 1. 相当于先删除表结构:drop table 表名;
– 2. 创建一张相同结构的表:create table 表名;
truncate table 表名

3.Data Query Language,数据查询语言,简称DQL,查询

查询表中的全部行和列的数据
– 查询表所有行和列的数据,星号*表示所有列select * from 表名;-- 查询指定的多个列select 列名1,列名2 from 表名;
– 指定列的别名select 列名 as 别名 from 表名-- 省略as关键字select 列名 别名 from 表名
– 使用别名查询id 编号、name 姓名,定义别名用as关键字select id as 编号, name as 姓名 from student;-- 使用别名查询id 编号、name 姓名,省略关键字select id 编号, name 姓名 from student;
2. distinct关键字:清除重复行
– 一个字段去重select distinct 字段 from 表名-- 多个字段去重,必须是全部字段一样,才会去重select distinct 字段1,字段2 from 表名
– 某列数据和固定值运算
select 列+数值 from 表名;

– 某列数据和其他列数据参与运算
select 列1+列2 from 表名;

– 查询姓名、数学,将数学每个减10分
select name, math, math-10 from student;

– 查询所有列与math + english的和并使用别名”总成绩”
select *, math+english from student;

-- 取出表中的每条数据,满足条件的记录就返回,不满足条件的记录不返回select 列名 from 表名 where 条件
**2. 比较运算符**

– 查询math分数大于80分的学生select * from student where math > 80;-- 查询english分数小于或等于78分的学生select * from student where english <= 78; – 查询age等于20岁的学生select * from student where age = 20;-- 查询age不等于20岁的学生,注:不等于有两种写法select * from student where age <> 20;select * from student where age != 20;

3. 逻辑运算符
– 查询age大于35且性别为男的学生(两个条件同时满足)
select * from student where age > 35 and sex=‘男’
select * from student where age > 35 && sex=‘男’

– 查询age大于35或性别为男的学生(两个条件其中一个满足)
select * from student where age > 35 or sex=‘男’
select * from student where age > 35 || sex=‘男’

– 查询id是1或3或5的学生
select * from student where id = 1 or id = 3 or id = 5

select 列名 from 表名 where 列名 in (值1,值2,值3);
– 查询在小值和大值之间的范围,包含小值和大值select 列名 from 表名 where 列名 between 小值 and 大值
select 列名 from 表名 where 列名 like ‘字符串’

– 查询英文成绩为NULL的学生select * from student where english is null;-- 查询英语成绩不为NULL的学生select * from student where english is not null;-- 查询姓名和英语成绩,如果英语为null,则显示为0分select name, ifnull(english, 0) from student;
对指定的1个字段或多个字段进行排序

  • 根据列值升序排列
    select 列名 from 表名 order by 列名 asc

– 根据列值降序排列
select 列名 from 表名 order by 列名 desc

– 多列排序
select 列名 from 表名 order by 列名 asc, 列名 desc

3.4.5 聚合函数

– 聚合函数针对列来操作
– 查询学生总数
select count(*) from student;
select count(english) from student;

– 查询年龄大于40的总数
select count(*) from student where age > 40

– 查询数学成绩总分
select sum(math) from student

– 查询数学成绩平均分
select avg(math) from student

– 查询数学成绩最高分
select max(math) from student

– 查询数学成绩最低分
select min(math) from student
3.4.6 分组查询
select 列名 from 表名 group by 列名 having 条件

聚合函数与条件一起使用

  • 查询年龄大于20岁的人,按性别分组,统计每组的人数select sex,count(*) from student where age > 20 group by sex
  • – 按性别进行分组,求男生和女生数学成绩的平均分select sex, avg(math) from student group by sex
  • – 按性别进行分组,求男生和女生数学成绩的总和select sex, sum(math) from student group by sex
    分页查询
    – 起始行
    startNum = (pageNumber - 1) * pageSize

– 查询SQL
select * from student limit startNum, pageSize;

  • 这些关键字有先后顺序
    select 字段 from 表
    where 条件
    group by 分组列
    having 过滤条件
    order by 排序列
    limit 跳过行, 返回行

4. DCL语句

Data Control Language,数据控制语言,简称DCL,权限管理和用户管理

3.5.1 创建mysql用户
create user ‘用户名’@‘主机名’ identified by ‘密码’
3.5.2 给用户授权

针对不同的用户,赋予不同的访问权限
grant 权限 on 数据库名.表名 to ‘用户名’@‘主机名’

– 给user1用户分配对test这个数据库操作的权限:创建表,修改表,插入记录,更新记录,查询
grant create,alter,insert,update,select on test.* to ‘user1’@‘localhost’;

– 给user2用户分配所有权限,对所有数据库的所有表
grant all on . to ‘user2’@’%’;

3.5.3 撤销权限
revoke 权限 on 数据库名.表名 from ‘用户名’@‘主机名’
– 撤销user1用户对test数据库所有表的操作的权限revoke all on test.* from ‘user1’@‘localhost’;
3.5.4 删除用户、修改密码

  1. 删除用户
    drop user ‘用户名’@‘主机名’
    – 删除user2用户drop user ‘user2’@’%’;
  2. 修改管理员密码
  3. mysqladmin -u 用户名 -p password 新密码
  4. 3.修改其它用户的密码
  5. set password=password(‘密码’)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值