1、数据库的登录
Mysql -uroot -p+密码
2、常用的数据库命令
创建数据库——create database 数据库名称;
删除数据库——drop database数据库名称;
查看数据库——show databases;
使用数据库——use 数据库名;
查看数据库中有多少张表——show tables;
注意书写的先后顺序,先使用数据库,再去查有多少张表
3、系统数据库(数据库服务器自带的4个数据库)
Information_schema——存储数据库对象信息
Performance_schema——存储数据库服务器性能参数信息
Mysql——存储数据库用户权限信息
Sys——通过这个库可以快速地了解系统的元数据信息
4、SQL功能分类
数据定义语言(DDL)——用来定义数据库对象:创造库,表,列等
数据操作语言(DML)——用来操作数据库表中的记录
数据查询语言(DQL)——用来查询数据
数据控制语言(DCL)——用来定义访问权限和安全级别
5、SQL数据类型
MySQL中定义数据字段的类型对于数据库的优化来说是必要的,MySQL支持的类型,大体可以分为三类,即数值类型,字符串类型和日期时间类型。在MySQL中,字符串类型和日期类型都要用单引号括起来,’mysql’ ’2020-01-01’
常用数据类型
Double:浮点型,例如double(5,2)表示最多5位,其中必须有两位小数,即最大值为999.99
Char:固定长度字符串;
Varchar:可变长度字符串类型;
Text:字符串类型;
Blob:二进制类型
Date日期类型,格式为:yyyy-MM-dd
Time:时间类型,格式为:hh:mm:ss
Datetime:日期时间类型yyyyMM-dd hh:mm:ss
注意,在MySQL中,字符串类型和日期类型都要用单引号括起来
6、如何创建一张数据表
Create table pet(
Name varchar(20),
Owner varchar(20),
Species varchar(20),
Sex char(1),
Birth date);
查看数据表是否创建成功
![8cf716f7bc865551c9a407b7b7efad74.png](https://i-blog.csdnimg.cn/blog_migrate/da8323592b36cb210cb28aa08cc6aaaa.png)
7、如何查看数据表结构
Describe/DESC表名;
![006b2588134527a5b58af527a42243a3.png](https://i-blog.csdnimg.cn/blog_migrate/4189e78364fc126381a89789676e1064.png)
8、如何增加一行数据记录
Insert into 表名(列名1,列名2...)value(列值1,列值2...)
例如:Insert into pet Values(‘chengma’,’bichuanxia’,’dog’,’f’,’1999-10-01’);
或者 insert into pet(name,owner) values(‘chengma’,’bichuanxia’);——此时意味着我这在name和onwer字段上面插入的一条,其他皆为null/默认值
注意:1、列名和列值的类型、个数、顺序要一一对应。
2、值不要超出列定义的长度。
3、插入的日期和字符一样,都使用引号括起来
如何一次插入多条记录
Insert into 表名(列名1,列名2...)values(列值1,列值2...),(列值1’,列值2’...);
9、如何增加一列数据记录
Alter table表名 add 列名 数据类型
例如:alter TABLE student add stu_gender char(10);
10、如何修改一个表的字段类型
Alter table表名 modify 列名 数据类型
alter TABLE student add stu_gender varchar(10);
11、如何修改表名
Rename table 原始表名 to 要修改的表名;
12、如何修改字符集?
Alter table 表名 character set 字符集名称;
13、修改表的列名
Alter table 表名 change 原始列名 新列名 数据类型;
ALTER TABLE student change stu_name s_name varchar(30);
14、查看表的创建细节
Show create table 表名;
或者选中对应的表之后,单击右键选择对象信息,之后把选项卡切换为DDL即可得到建表使用的语句
15、删除一列
Alter table 表名 DROP 字段名;
例如:ALTER TABLE student DROP s_name;
16、如何删除表
Drop table 表名;
17、查询表中的所有内容
Select * from 表名【where 列名=值】;
18、更新操作
Update表名 set 列名1=列值1,列名2=列值2...where 列名=值;
UPDATE student SET stu_score =90;
UPDATE student SET stu_score =stu_scroe+1 where stu_name=cm;
19、如何修改数据库密码?
在mysql8之前的版本
Use mysql;
Update mysql.user set authenication_string=password(“123456”)where user=’root’ and host=’localhost’;
Flush privileges;刷新MySQL的系统权限相关表
Mysql8
进入CMD登录MySQL
Alter user’root’@’localhost’IDENIFIED BY’新密码’;
通过Mysqladmin修改
20、删除符合特定条件的记录
Delete from 表名 where 列名=值
21、删除所有内容
Delete from 表名
Truncate table 表名
Delete与truncate的区别
delete删除表中的数据,但是保留表的结构(譬如说我删除id=4的数据,再添加的时候将自动将id计为5(勾选自动递增),而truncate是直接删除整张表,然后再重建一个同样的新表,执行速度高于delete。
22、如何设置表结构?
选中对应的表——设置表——单击最右侧一列即可设置主键(出现小钥匙即为设置成功)
![61786460688d2615dbdbac94a2bb128b.png](https://i-blog.csdnimg.cn/blog_migrate/c687760459e1b4e47d56a6304aed3a83.png)
22、如何查询指定的列
select 列名1,列名2...from 表名;
23、行符及关键字
常规运算符:=,!=(不等于),<>(不等于)
Between ... and...值在什么范围
IN(set);查询固定的范围值,如12,14,18...
Is Null(查询空值) is not null(查询非空值)
24、如何进行模糊查询
语法结构
案例:查询名字由五个字母组成的项目
Select *from student where name like ‘_____’
通配符:_:任意一个字符
%:任意多个字符
如何查询名字里有m的的项目
Select @* from student Where name like ‘%m%’;
25、如何实现SQL结果集去重与字段别名
语法结构:Select distinct * from students;
26、如何把查询字段的结果进行运算
首先,进行运算的字段必须都要填数据型,
语法结构:select*,字段1+字段2 from 表名1
实现效果:
![692744ce4b0c5300099b6e9b691216c9.png](https://i-blog.csdnimg.cn/blog_migrate/365ecfee9c5babc2781aa58877630113.png)
表里未进行记录的内容会显示为null,因为任何数与null相加还是null,所以计算结果可能会出现null,下面使用了把null转换成数值0的函数ifnull
语法结构 select*,age+ifnull(score,0) from students;
此时的列名为age+ifnull(score,0)
由于不太美观,此时应当给列重新命名,使用as+命名可以实现
案例:select*,age+ifnull(score,0) as total from students;
27、SQL数据的导入与排序
导出:选中表——导出文件——选择存为SQL脚本文件
导入:选中对应的数据库——运行SQL文件(此时每运行一次,就相当于在原表下方再插入一次原表)
28、对查询的结果进行排序
语法结构 order by [排序第一顺位项目] 排序方式(ASC/DESC),[排序第二顺位项目] 排序方式(ASC/DESC);
案例:
Select *from employee order by salary ASC;(升序,默认为升序)
Select from employee order by salary DESC;(降序)
29、聚合函数
常用的聚合函数
Count():统计指定列不为null的记录行数;
MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,则计算结果为0;
Count的使用
案例:select count(*)from student;(统计student中的项目数)
Select count(salary)from student;