1.创建DB user 注:符号全部使用英文拼音符号!
标准格式
create database ruozedata;
创建数据库 ruozedata
grant all privileges on *.* to djh@'%' identified by 'ruozedata';
grant all privileges 赋予所有权限;. 第一个表示此机器上的所有数据库,第二个表示每个数据库下属的所有对象;ruozedata为密码
flush privileges;
刷新权限
注:如果命令执行出现权限错误,应该是连接问题,将需要执行的命令在xshell中的MySQL终端中执行
查看数据库
show databases;
切换数据库
use ruozedata;
删除数据库
drop database ruozedata;
查询该数据库空间的所有用户
SELECT USER,HOST from mysql.user;
新建用户djh
create user djh identified by 'xxxx';
更改djh的密码
set password for djh=password('yyyyyy')
查看djh用户的权限
show grants for 'djh';
给djh用户数据库ruozedata的所有的权限
grant all privileges on ruozedata.* to djh;
去除所有权限
revoke all privileges on ruozedata.* to djh;
2.杀SQL进程
在xshell中的MySQL终端进行
show processlist;
kill id;
杀进程之前一定要确认进程进程是否可杀
3.字段类型
数值类型
int 整数 (较少字节)
long 长整型(较长字节)
float 单精度(占4个字节,有效数字为8,保证十进制的6位数字计算)
double 双精度(占8个字节,有效数字为16,保证十进制的15位数字计算)
decimal 小数值 (精度较高,适合用作金融计算)
字符串类型
char 字节 定长 0-255字节 自动补全 255字节
varchar 字符串 变长 0-65535字节 不自动补全
日期
date 日期 YYYY-MM-DD
time 时间 HH:MM:SS
datetime 年月日时分秒 YYYY-MM-DD HH:MM:SS
timestamp 年月日时分秒 YYYY-MM-DD HH:MM:SS
datatime和timestamp的区别
https://blog.csdn.net/u014696474/article/details/70568733
4.SQL类型
DDL 数据定义语言: create drop
DML 数据操作语言: insert delete update select 增删改查
DCL 数据控制语言: grant
5.建表
create table rzdata(
id int(11) not null auto_increment,
(建立表格rzdata;not null不允许空值;auto_increment自生长)
name varchar(200),
age int(3),
(姓名赋予200字节大小空间,年龄赋予3位数的空间)
createuser varchar(200) ,
createtime timestamp not null default current_timestamp,
(创建者 创建时间默认当前创建时间)
updateuser varchar(200) ,
updatetime timestamp not null default current_timestamp on update current_timestamp,
(修改者,修改时间默认当前修改时间)
primary key (id)
(主键约束)
);
主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。
复制表格
create table rzdata1 select * from rzdata;
或者部分复制
create table rzdata1 select id,name,age from rzdata;
创建临时表
create temporary table rzdata;
查看数据库中的表
show tables;
查看表结构
describe rzdata;
或者
show columns in rzdata;
删除表
drop table if exists rzdata
表格重命名
rename table rzdata to rzdata1;
alter table rzdata rename rzdata1;
修改表结构
alter table rzdata add address;
alter table rzdata drop address;
alter table rzdata rename address to age;
插入数据
insert into rzdata(id,name,age) values(1,'xxx',32);
插入从rzdata1中检索出来的数据
insert into rzdata(id,name,age) select id,name,age from rzdata1;
注意:
1.尽量都是用英文,避免汉语以及拼音
2.统一风格 。命令的格式要同项目一直,以便查阅
3. 第一个字段 必然是 id 自增长,它是无意义的。可以高性能的存储与查询
自增主键的优势:
(1)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利;
(2)数字型,占用空间小,易排序,在程序中传递也方便;
(3)如果通过非系统增加记录时,可以不用指定该字段,不用担心主键重复问题
自增主键id超了,将int改为bigint
4. 一张表只有一个主键primary key==》id等价于unique+not null。相同的id只能出现一次
或者可以再表格属性中点开约束 ,然后新建 约束,选择想要约束的项目
约束过后,再次输入相同项目名称就会抛错
5.后四个字段 建议都要加 创建用户 、修改用户 、创建时间 、修改时间
6.业务字段 最好加上注释comment
7.ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1
InnoDB是一种存储引擎,它的特性是支持事务,并且采用多版本并发控制的方式来提高并发度主要是事务表,当一个事务全部完成,才会执行update.如果一段代码没有完成(及一个事务操作没有完成)它是不会update的.例如突然断电,这个业务就会回退到上一步,安全性很高,但是速度比较慢
DEFAULT CHARSET=latin1
database 字符集
table字符集
column 字符集
服务端 字符集
客户端字符集
都有字符集
6.增删改查
增加
`insert into rzdata(name,age,createuser,updateuser) values('djh22',222,'r','r');
两个括号一定要一一对应
修改
update rzdata set name=wdas,age=19 where id =1;
删除
delete from rzdata where id=6;
删除与修改时要加上where,否则会把整个文件夹都删除。
如果删除了,要去binlog恢复 在arch/mysql-bin.000001文件夹
查看
select * from rzdata;
select id,name,age from rzdata;
星号代表表格所有内容,在生产过程中不要使用星号,内容太多会死机
一般要加limit
select id,name,age from rzdata where id=6 limit 5,10;检索从第5行之后,长度为10的数据
select id,name,age from rzdata where id=6 limit 5,-1; 检索第5行之后一直到最后一条数据
select id,name,age from rzdata where id=6 limit 5; 检索前5条数据