Mysql 基础
创建用户:
create user 'xxx'@'%' indentified by '123'
授权:
grant 这个权限 只有root有
grant all privileges on *。* to 'xxx'@'%';
revoke all privileges on *.* from 'xxx'@'%';
sql基本语法:
对数据库:
增:
create database db1;
删:
drop database
改:
alter database db1 charset gbk;
查:
show create database db1;
show databases;
对表:
use db1; 切换文件夹
select database(); 查看文件所在文件夹
增:
create table ti(id int,name char);
删:
drop table t1;
改:
alter table t1 modify name char(6); modify:修改
alter table t1 change name NAMA char(7);
查:
查看当前ti表:
show create table t1;
查看所有表:
show tables;
查看表的详细信息:
desc t1;
复制表:
- 新创建
create database db1 ;
-使用db1
use db1;
- 复制db2.a1的表结构和记录
create table b1 select * from db2.a1;
- 只要表结构 ,不要记录
create table b2 select *fro db2.a1 where 1>5;
给一个where 条件 ,条件要求不成立,只拷贝表结构
- 也可以用 like;
create table b3 like db2.a1;
对数据:
增:
insert into ti(id,name) values(1,'aaa'),(2,'bbb'),(3,'ccc');
删:
delete from ti;
delete from ti where id = 2;
改:
update db1.t1 set name = 'zhangsan';
update db1.t1 set name = 'kawayi' where id=2;
查:
select id from db1.t1;
select id,name from db1.t1;
select * from db1.t1;
数据类型:
1 数字
整形: tinyint int bigint
tinyint: 有符号 :-128 ~ 127
无符号: 0 ~ 255
sql中没有boolean类型 使用tinyint(1)来表示boolean值 1 表示true 0 表示false
int: 定义int类型不需要加宽度,使用默认就可以
小数:
float:在位数比较短的情况下不精准
double:在位数比较长的情况下不精准
decimal: 推荐用这个小数 因为精准
2 字符串
char(10):浪费空间 存取速度快 (定常)
字符串范围长度:0~255 存储char类型的值时:会往右填充空格来满足长度
varchar:精准,节省时间,存取速度慢 (变长)
字符长度范围:0~65535 存储数据的真是内容,不会用空格填充
sql优化:创建表时,定长的类型往前放,变长的往后放
>255个字符,超了就把文件路径存放到数据库中。
比如图片,视频灯找一个文件服务器,数据库中只存路径或url。
length(); 查看字节数
char_length(): 查看字符数
3 时间类型:
year date time datetime:
now() sql的内置函数,根据数据类型生成对应的时间格式
4 enum 枚举 表示多选一
- 只能在给定的范围内选一个值,如性别sex 男male/女female
set 集合 表示多选一 或者多选多
- 在给定的范围内可以选择一个或一个以上的值