当前位置:Gxlcms > 数据库问题 > mysql知识点回顾(一)

mysql知识点回顾(一)

时间:2021-07-01 10:21:17 帮助过:18人阅读

create user ‘alex‘@‘192.168.1.1‘ identified by ‘123123‘;  identified 设置密码 create user ‘alex‘@‘192.168.1.%‘ identified by ‘123123‘;  %代表任意 create user ‘alex‘@‘%‘ identified by ‘123123‘;  所有ip   用户管理 创建用户     create user ‘用户名‘@‘IP地址‘ identified by ‘密码‘; 删除用户     drop user ‘用户名‘@‘IP地址‘; 修改用户     rename user ‘用户名‘@‘IP地址‘; to ‘新用户名‘@‘IP地址‘;; 修改密码     set password for ‘用户名‘@‘IP地址‘ = Password(‘新密码‘)    PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)         授权     权限    人     grant 权限     grant select,insert on db1.t1 to ‘alex‘@‘%‘ ;     设置alex只能查看db1数据库的t1表         grant all privileges on db1.t1 to ‘alex‘@‘%‘ ;     alex除了grant以外的所有权限都可以     revoke all privileges from db1.t1 to ‘alex‘@‘%‘ ;     取消这条权限      show grants for ‘用户‘@‘IP地址‘                  -- 查看权限 grant  权限 on 数据库.表 to   ‘用户‘@‘IP地址‘      -- 授权 revoke 权限 on 数据库.表 from ‘用户‘@‘IP地址‘      -- 取消权限       SQL语句规则 操作文件夹(操作数据库)     create database db2;     create database db2 default charset utf8; 数据库默认utf8     show databases;     drop database db2;   操作文件(操作表) show tables; create table t1(id int,name char(10)); 创建表,id,name字段,name限制10 个字符,超出取前十个。 create table t1(id int,name char(10)) default charset=utf8; 表默认是utf8 create table t1(     #列名,类型,null,     #列名,类型,not null,不可以为空     #列名,类型,not null,default 1,     #列名,类型,not null,auto_increment,自增     id int,     name char(10) ) engine=innodb default charset=utf8; 表默认是utf8,引擎默认是innodb select * from t1;   innodb 支持事务,可以回滚,原子性操作。 myisam 不支持事务   auto_increment 表示:自增 primary key:表示,约束(不能重复,且不能为空);加速查找, 一个表里只能有一个自增列,只能有一个主键。但是主键不一定是一行。   清空表: delete from t1; 清空表,新增数据的自增id从之前的接着。 truncate table t1;清空表,自增id从头开始。   删除表: drop table t1;   查看表结构以及类型: desc tabename;   查看表是如何创建的: show create table  tablename; show create table  tablename \G; 加一个\G 可以去掉空格   自增: 通过命令 更改下次插入数据时,自增ID的值: alter table tablename AUTO_INCREMENT=13;更改下次插进来数字,自增主键为13   mysql中自增的步长 技术分享图片

 

  操作文件内容(操作内容) 插入数据: insert into t1(id,name) values(1,‘egon‘); 删除数据: delete from t1 where id<6 修改: update t1 set age=18; 将age列全部修改为18 update t1 set age=18 where age=17; 将age为17的改为18 查看数据: select * from t1;   create table t3(id int auto_increment primary key,name char(10)) default charset=utf8;  设置id为主键 并自增。 insert into t3(name) values(‘abcdef‘);  所以插入数据的时候只需要插入name字段即可。   数据类型 数字   tinyint  int     unsigned 表示创建表的时候字段属性没有符号(比如负号)     signed 表示有符号的 bigint 以上三种就是长度的区别   FLOAT     只能表示不太精准的小数,如果长度不大,可以使用 DOUBLE     只能表示不太精准的小数,如果长度不大,可以使用 decimal     该类型小数非常精准,因为内部原理是将长的小数按字符串存储的。     decimal(10,5)  10代表总位数,5代表小数点后几位   bigint支持的数字的大小范围为: 19位,存电话号码等。 有符号范围:-9223372036854775808 到 9223372036854775807   int支持的数字范围为: 10位, 有符号范围:-2147483648 到 2147483647    无符号范围:0-4294967295       字符串 char(10)     如果字符没有占满,则会自动填充至10个字符,比如填充空格 varchar(10)     如果没有填满,在硬盘中只会占用实际字符长度,节省空间,查找速度没有char快11   char和varchar最高只能存储255个字符 text可以存储65535个字符 如果更多的内容,需要写到文件中,将路径写到数据库。   优化建议:创建表时,将定长的数据往前放,变长的往后放。   时间类型     DATETIME   枚举 enum 技术分享图片

 

  相当于给插入数据的时候规定了一个选项 单选字符串数据类型,适合存储表单界面中的“单选值”。   设定enum的时候,需要给定“固定的几个选项”;存储的时候就只存储其中的一个值。   设定enum的格式:     enum("选项1","选项2","选项3",...);   实际上,enum的选项都会对应一个数字,依次是1,2,3,4,5...,最多有65535个选项   使用的时候,可以使用选项的字符串格式,也可以使用对应的数字。       技术分享图片

 

  SET规定,只能插入a,b,c,d的任意组合   多选字符串数据类型,适合存储表单界面的“多选值”。   设定set的时候,同样需要给定“固定的几个选项”;存储的时候,可以存储其中的若干个值。   设定set的格式:     set("选项1","选项2","选项3",...)   同样的,set的每个选项值也对应一个数字,依次是1,2,4,8,16...,最多有64个选项   使用的时候,可以使用set选项的字符串本身(多个选项用逗号分隔),也可以使用多个选项的数字之和(比如:1+2+4=7)     =====================================================================================   外键 create table userinfo(     uid bigint auto_increment primary key,     name varchar(32),     department_id int,     constraint fk_user_depart foreign key ("department_id",) references department(‘id‘)   #外键约束 )engine=innodb default charset=utf8;   create table department(     id bigint auto_increment primary key,     title char(15) )engine=innodb default charset=utf8;   外键的名字,上面标红处不能与别的外键重名,建议用表_表这种起名   主键: 技术分享图片

 

上图为主键的两种写法。 一个表只能有一个主键,主键可以由多列组成。                    

mysql知识点回顾(一)

标签:line   lin   foreign   values   pass   有一个   bottom   默认   tle   

人气教程排行