数据库是数据的仓库,存储数据
数据库管理系统,是一个大型软件,他操作着数据库,是人与数据库沟通的桥梁
SQL,是数据库编程语言,通过他可以通过数据库管理系统操作数据库
win + r
cmd
mysql --version
(侧面可以查看本机是否安装了mysql)
注意,本机MySQL注册服务就叫MySQL(通过services.msc就可以看到)
配置好环境变量之后,cmd以管理员身份运行,输入
mysql -u -root -p
(-h -p选项可以不写,默认是127.0.0.1 3306,即本机IP的3306端口)
之后输入密码
即可进入到mysql客户端,通过这个窗口输入sql语句,就可以操作mysql数据库了
客户端就是我们的sql语句输入窗口,
而当我们安装了mysql之后,我们的计算机就变成了mysql数据库服务器
mysql整个服务自带dbms(即数据库管理系统),他可以翻译sql语句,去操作数据库中的数据
在一个数据库服务器中,可以创建多个数据库,而一个数据库又可以创建多个表
可以多行可以单行
SQL语句可以使用空格/缩进来增强语句可读性
不区分大小写
注释:–单行注释
/* */ 多行注释
DDL针对数据库,用来制作数据库、删除数据库,制作表的字段
DML针对数据库表中的数据,用来操作数据库表中的数据,进行增删改
DQL针对数据库表中的数据,查询数据库中表的数据
DCL针对数据库的控制,创建数据库用户、控制数据库访问权限
几个注意点:
查询:
1、查询所有数据库时,要加database要加s
创建:
2、创建数据库时,database不用加s 且有几个可选项,第一个可选项是if not exists 加上之后的意思是:如果这个数据库名不存在,我再创建这个数据库,如果名称被占用,那么不会再创建,如下是加选项的语句:
3、使用字符集时,如果想要使用utf8,那么可以使用utf8mb4,因为默认的utf8是3字节,utf8mb4是四字节(同时这也是默认的字符集),存储的数据范围要更大一些
删除:
4、关于删除,可以加上选项if exists 表示如果存在再进行删除
使用:
5、使用数据库,我们有许多的数据库,我们要进入一个数据库里,进行相关数据的操作,进入数据库就使用use语句
6、当我们进入了数据库,执行了许多sql语句,我们突然忘了当前在哪个数据库了,想要查询当前在哪个数据库,就可以使用查询数据库:select database();,如下图:
切换数据库:
7、同时如果现在在一个数据库内,可以直接使用use切换到其他数据库
进入数据库之后
使用show tables; 即可查看当前所在数据库所有的表
当我们有一个表之后,可以使用desc来查询表结构
但是使用该语句获得的信息较少,可以使用show create table 表名 查询到具体的建表语句,可以查看相关注释等等,如下图:
上图中标出来的地方 可以忽略 这是默认配置
其中的字段1、2、3… 都是表头名称 ,后面跟上表头所引领数据的类型
中括号里都是可选内容,即加上comment 后面可以写注释
每个字段语句之间用逗号隔开,最后一个无需加逗号
如下图创建了表的表结构
需要注意的是:
1、注释要用单引号引起来
2、在sql语句中字符串用varchar表示,之后加括号,括号里是字符串的长度,varchar(50)是表示五十位的字符串,一位代表一个汉字(注意这里的位不是大小,一个汉字的大小是两个字节)
创建完表之后,可以使用上面的show tables查看所有的表
然后可以使用desc 表名,查看一个表的表结构
上图是数值类型的各个类型,其中有许多小整数类型。可以对于一些范围不大的业务,可以适当选取小整数,节省空间
如下案例:
对于年龄age:一个人的年龄绝对在(0,255)范围内,所以可以使用tinyint类型,同时在后面标注无符号类型unsigned(不加unsigned默认有符号位)
对于分数score:一般是0到100,小数一位,那么double(参数一,参数二) ,参数一:算上小数位最多有几位数字,参数二:小数位占其中的几位
一般只有char 和 varchar 常用
第一个char 是定长字符串 他的空间一旦被规定就不再改变,因此性能较高
varchar 是变长字符串 他的空间只是规定上限,他会根据具体的内容进行空间匹配,是变长的,因此性能较低
而对于char 和varchar 都有一个参数 表示该字符串的长度
对于用户名,使用varchar合适
对于性别,使用char(1)合适
DATE YYYY-MM-DD 表示年月日,表示一个日期
TIME HH:MM:SS 时间值或计时 小时:分钟:秒
DATETIME YYYY-MM-DD HH:MM:SS 年月日时分秒
添加字段:
修改一个字段的数据类型:
以及修改字段名和字段的数据类型:
修改一个表的表名:
删除一张表:
以及 删除表后重新创建该表:
对于删除表后重新创建表的功能:删除表后,表中的数据会被清空,然后重新创建表的话,数据不再了,但是表的结构还在的,相当于数据重置了