mysql –skip-grant-tables
3.跳过登录并改密码,刷新
mysql –uroot –p
update mysql.user set password=password(‘egon123’) where user=’root’ and host=’localhost’;
flush privileges; # 刷新
4.关闭mysql,正常启动
net start mysql
基本的sql语句
注:sql语句在结束时都要加上;
文件夹:库
增:create databse db1 charset utf8;
删:drop database db1;
改:alter database db1 charst gbk;
查:show databases;
Show create database db; #相当于查刚刚建立文件的编码
文件:表
切换文件夹:use db1;
查当前所在库:select databases;
增:create table db1.t1(id int,name char);
create table t2(id int primary key auto_increment); #创建不为空,且唯一的id,自动增长
删:drop table t1;
改:alter table t1 add age int;
alter table t1 modify name char(15);
alter table t1 change name NAME char(15);
alter table t1 drop age;
查:show tables;
describe t1;
文件内的一行行内容:记录
增:insert into t1(id,name) values
(1,’egon’),
(2,’lxx’);
删:delete from t1 where id >= 2; #不加where条件会将表全部删除,但是auto_increment 的值不会重置,故而不推介该方法。
清空列表的操作推介使用 truncate t2;
改:update db1 t1 set name = ‘lxx_dsb’ where id = 2;
查:select id; select name,id; select *;
select * from t1 where id = 2;
一、创建表的完整语法:
# 语法
create table 库名.表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);
约束条件:是在数据类型之外对字段附加的额外的限制
注意:
1.最后一个字段之后不能加逗号
2.同一张表中,字段名不能相同
3.字段名和类型是必须有的
4.宽度和约束条件是可选的
二、数据类型
Ps:修改sql-mode为严格模式,必须重启才能生效:
Set globle sql_mode = ‘strict_trans_tables’;
1.整型:默认是有符号的
create table t1(x int unsigned); unsigned是指定创建无符号的表
强调:整型类型后的宽度不是存储宽度,而是显示宽度
2.浮点型:
float(255,30) double(255,30) decimal(65,30)
逗号前是小数点之前的位数,逗号后是小数点之后的位数
三者的精度不同,decimal精度最高,但一般用float就足够了
create table t2(x float(255,30));
3.日期类型
year 1994 date 1994-11-3 time 08:30:00
datetime/timestamp 1994-11-3 08:30:00
两者区别:datetime占位多,允许为空
timestamp 站位少(4位),且可以自动传当前时间
4.字符类型: 注宽度指的是字符个数
char:定长 char(5)
varchar:变长 varchar(5) 存储时为了分隔不同数据,每个数据前都会加一个用于描述长度的头,一般使用varchar,因为可以省io操作
两者相同点:宽度指的都是最大存储的字符数,超过就会无法正常储存
不同点:char(5):会把’m’ 存成’m ‘,m后面会用空格填满到五个字符
Varchar(5): ‘m’还是存的’m’ 只需要一个字符
注意:mysql在查询时针对where字段 = ‘值 ‘会忽略掉值右边的空格
但是如果是like模糊匹配就会忽略右边的空格了
5.枚举与集合类型
枚举 enum(‘a’,’b’,’c’); 多选一
集合 set(‘a’,’b’,’c’); 多选多