python学习第三十八天:mysql基础

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’);  多选多

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyggyx.html