四、mysql(1)基础回顾
一、mysql常用命令
1.连接操作
(1)连接到本机上的MYSQL。
首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。
如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>
(2)连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样)
(3)退出MYSQL命令: exit (回车)
2.用户相关操作
注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to [[email protected]”%][email protected]”%[/email]” Identified by “abc”;
但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见2。
2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to [[email protected]][email protected][/email] identified by “abc”;
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to [[email protected]][email protected][/email] identified by “”;
3.数据库操作
create database name; 创建数据库
use databasename; 选择数据库
drop database name 直接删除数据库,不提醒
4.表操作
show tables; 显示表
describe tablename; 表的详细描述
二、sql分类
SQL全程为Structure Query Language(结构化查询语言)。
SQL 语句主要可以划分为以下 3 个类别:
1、DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、 数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter 等。
2、DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、update 和 select 等。
3、DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和 访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。
三、mysql支持的数据类型
1、数值类型
常见的数值类型如下:
注:这里的最小值和最大值代表的是宽度。
对于这几种常见的数值类型,我们应该知道存储的所占的字节,我们还要知道INT最大的长度为10位数字,那么我们设置11为,如:int(11)也是无用的,最多只能为10位数字。TINYINT最大支持3位,那么我们设置tinyint(4)也是无用的。
2、日期时间类型
上图可以看出,每种日期时间类型都有一个有效值范围,如果超出这个范围,在默认的SQLMode下,系统会进行错误示,并将以零值来进行存储。不同日期类型零值的表示如下:
提示:
(1)日期格式中只有TIMESTAMP 可以使用MySQL提供的函数,实现自动设置时间和自动更新时间,脚本如下:
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
(2)Navicat for MqlSQL设置如下:
(3)、使用TIMESTAMP 要认识到,他会停止在2038年的一个时刻,但MySQL官方应该后期会提供相应的支持。
(4)DATETIME、TIMESTAMP都可以精确到秒,但是TIMESTAMP只占4个字节,因此可以有效考虑使用;
3、字符串类型
4、常见的char和varchar区别:
(1)char(N)用于存放固定长度的字符串,长度最大为255,比指定长度大的值将被截断,而比指定长度小的值将会用空格进行填补;
(2)varchar(N)用于保存可变长度的字符串,长度最大为65535,只存储字符串实际需要的长度,它会增加一个额外字节来保存字符串本身的长度,varchar使用额外的1~2字节来存储值得长度,如果列的最大长度小于或等于255,则使用1字节,否则就是使用2字节;(1个字节占8位,2的8次方是256(-128~127);2个字节占16位,2的16次方为65536)
(3)char和varchar跟字符编码也有密切联系,lantin1占用1个字节,gbk占用2个字节,utf8占用3个字节。示例如下:
- lantin1、1个字符1个字节:
- gbk、1个字符2个字节:
- utf8、1个字符3个字节:
四、MySQL中的常用运算符
1、算术运算符
2、比较运算符
五、MySQL中的常用函数
1、字符串函数
2、数值函数
3、日期和时间函数
六、其他
mysql(2)基础sql语句(修改表字段语句、查询语句)
https://blog.****.net/M_azed/article/details/90377479
mysql(3)事物Transaction相关
https://blog.****.net/M_azed/article/details/90378680
mysql(4)常用引擎之Innodb和MyIASM
https://blog.****.net/M_azed/article/details/90379870
mysql(5)sql优化
https://blog.****.net/M_azed/article/details/90380528