2018-11-09 SQL常用语句(一)

1.DDL操作

概要

(一)创建数据库

create database 数据库名  character set utf-8;

(二)创建表

create table stu
(
   性别               int(10),
   地址              varchar(50),
   姓名                varchar(50),
  联系电话          int(12)
);
image.png

(三)查询表的字段信息:

desc 表名;
image.png

(四)添加一列

注意varchar()必须要指定最大占多少个字节,不指定就会报错。
alter table 表名  add 列名 数据类型
image.png

(五)修改一个表的字段类型

alter table 表名 modify 字段名 数据类型;
image.png

(六)删除一列

alter table 表名 drop 列名;
image.png

(七)修改表名

rename table 表名 to 新表名;

(七)查看表的创建细节

show create table 表名;
image.png

(八)修改表的字符集

alter table 表名 character set 字符集名称
image.png

(九)修改表的列名

alter table 表名 change  原始列名 新列名 数据类型;
image.png

(十)删除表

drop table 表名;
image.png

(十一)在指定的列后面添加一列

alter table 表名 add (column) 列名 数据类型 after 指定列名;
image.png

(十二)在第一列添加列

alter table 表名 add (column) 列名 数据类型 first;
image.png

2.DML

(一)查询数据库表当中的所有信息

image.png

(二)往表当中插入一条记录

insert into 表名 (列名1,列名2.....)values(列值1,列值2....);
image.png

(三)往表当中批量添加记录

insert into 表名 (列名1,列名2...) values  (列值1,列值2...), (列值1,列值2...), (列值1,列值2...)...
image.png

(四)更新操作

update 表名 set 列名1=列值1,列名2=列值2...where 列名=值;
将所有学生的成绩改为90

将name是张三的学生的成绩改为60

将名字是李四的学生的age改为20,score改为70

将名字是娜美的学生的年龄+1

(五)修改用户密码

使用sql语句修改用户密码

**********************5.7之前**************************
update user set password=password("abc") where user='root';
**********************5.7之后**********************************
update user set authentication_string=password("12345") where user='root' and Host='localhost';
**************注意要刷新mysql的系统权限相关表******************
flush privileges;

使用mysqladmin命令来修改

*******************将用户密码修改为1234*************************
mysqladmin -u root -p password 1234;

(六)删除操作

delete from 表名 where 列名=列值;
image.png
*****************直接删除表,然后在创建一个同名的新表**********************
truncate table 表名
image.png
*************deldete与truncate的区别****************
deldete删除表当中的数据,表结构还在,删除后的数据可以找回
truncate删除是直接将表drop掉,然后在创建一个同样的新表,删除的数据不能找回,执行速度比delete快。

3.DQL

通过查询语句查询出来的数据是以表的形式展示给我们的,我们称这个表为虚拟结果集,存放在内存当中

查询返回的结果集是一张虚拟表

(一)条件查询运算符及关键字

屏幕快照 2019-03-22 下午9.14.33.png
1.查询ID是101,102,103的记录
select * from students where id=101 or id=102 or id=103;
select * from students where id in (101,102,103);
image.png
2. 查询name为null的记录
select * from students where name is null;
**************以下的查询方式是错误的****************
select * from students where name=null;
select * from students where name='null';
image.png
3.查询姓名不为null的记录
select * from students where name is  not null;
image.png
3.查询年龄在18到20 之间的学生记录
select * from students where age between 18 and 20;
select * from students where age>=18 and age<=20;
image.png

(二)模糊查询

like关键字后面跟通配符构成模糊查询

image.png
1.查询姓名由2个字符构成的记录
select * from students where name  like '__';
image.png

(三)字段控制查询

去除重复的字段
把查询字段的结果进行运算,必须都是数据类型
对查询结果起别名
1.去除重复的字段
*******************去除重复的字段使用distinct关键字*********************
select distinct age from students ;
2.对字段取别名
select *,age+score from students;
select *,ifnull(age,0)+ifnull(score,0) from students;
image.png
select *,ifnull(age,0)+ifnull(score,0) as total from students;
image.png

(四)排序

对查询出来的结果进行排序,使用关键字order by;
升序asc(默认):
降序desc:
***********按照薪水的升序,ID的降序排列*********************
select * from employee order by salary ,id desc;
image.png

(五)sql文件的导入导出

导出

image.png

一路按照提示操作下去即可

导入

点击数据库---->运行sql文件

一路按照提示操作即可

(六)聚合函数

image.png

(七)分组查询

image.png
1.先分组,分完组之后统计每一组的值。

将查询结果按照一个或者多个字段进行分组,字段值相同的为一组

select gender from employee group by gender;
select gender,group_concat(name) from employee group by gender;
image.png
*******************查询每个部门的部门名称和部门的工资总和**************
select department,group_concat(salary),sum(salary) from employee group by department;
image.png
2.group by +聚合函数
image.png
********************询每个部门的名称以及每个部门工资大雨1500的人数****************
select department,group_concat(salary) ,count(*)from employee where salary>1500  group by department;
image.png
3.group by+having
image.png

having主要用在group by的后面,将满足条件的删选出来

*******************询工资总和大于9000的部门名称****************
select department,sum(salary) from employee group by department having sum(salary)>=9000;
image.png
4.having与where的区别
image.png
*****************查询工资大于2000,工资总和大于6000的部门的名称以及工资和
***
select department,group_concat(salary),sum(salary) from employee where salary>2000 group by department  having sum(salary)>=9000;
image.png
5.SQl语句的书写顺序
image.png
6.SQL语句的执行顺序
image.png
7.limit
limit主要用来进行分页查询
limit(curPage-1)* pageSize,pageSize
image.png

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,413评论 0 9
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,840评论 5 116
  • 关系型数据库和SQL SQL语言的三个部分DML:Data Manipulation Language,数据操纵语...
    Awey阅读 1,966评论 0 13
  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,778评论 0 44
  • 不知不觉又到了星期六,翻开自己的晨间日记,易效能践行已经四十一天了。应该说九十天的践行快到一半,从开始的不适应,到...
    陈健_6f12阅读 113评论 0 0