mysql操作语言:
打开:
以管理员身份打开命令窗口,运行指令:
net start mysql #运行数据库
mysql -u root -p #进入数据库
net stop mysql #停止数据库
exit #退出
mysql -u root -p password #设置数据库密码
select * from mysql.user; #查看数据库信息
show variables like '%char%'; #显示编辑信息(utf8)
创建操作通过 INSERT语句来完成;
查询操作通过SELECT语句来完成;
更新操作通过UPDATE语句来完成,如果数据库支持,还可以通过REPLACE语句来完成;
删除操作通过DELETE语句来完成;
游标:创建一个游标来执行查询操作:
(DB-API协议、隔离、主键和外键)
python操作数据库的基本语言指令:
SQL命令的使用规则:
每条命令必须以;结尾
SQL命令不区分字母大小写
使用\c终止当前命令的执行
库的管理:
show databases ; #查看已有的库
create database 库名 [character set utf8]; #创建库(指定字符集)
show create databases 库名; #查看创建库的语句
select databases(); #查看当前所在库
use 库名; #切换库
show tables; #查看库中已有表
drop databases 库名; #删除库
库名的命名规则:
可以使用数字,字母,_,但是不能为纯数字
库名区分字母大小写
库名具有唯一性
不能使用特殊字符和mysq1关键字
表的管理:
表的基本操作
a.创建表:
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型
);
b.查看创建表的语句(字符集,存储引擎)
show create table 表名;
c.查看表结构
desc 表名;
e.删除表
drop table 表名;
注意:
1.所有的数据都是以文件的形式存放在数据库目录下
2.数据库目录:/var/lib/mysql
表记录的管理:
1.在表中插入记录.
1.insert into 表名 values(值1),(值2),....;
2.insert into 表名(字段名1,字段名2,....)values(值1),(值2),....;
2.查询表记录
1.select * from 表名[where 条件];
2.select 字段名1,字段名2.....from 表名 [where条件];
如何更改库的默认字符集:
1.方法
通过更改MySQL的配置文件实现
2.步骤
1.获取root权限
sudo -i
2.备份mysql的配置文件
cd /etc/mysql/mysql.conf.d/
cd mysqld.cnf mysqld.cnf.bak
3.修改配置文件
vi mysqld.cnf
在[mysqld]下面添加:character_set_server = utf8
4.重启MySQL服务/重新加载配置文件(reload???)
/etc/init.d/mysql restart|reload?????
5.创建库验证默认字符集是否为utf8
客户端把数据存储到数据库服务器上的过程:
1.先链接到数据库服务器 mysql -h ... -u ... -p...
2.选择库 use 库名
3.创建表/修改表
4.断开与数据库服务器的链接 exit;|quit;|\q
数据类型:
1.数值类型:
1整形:
1.int大整形(4个字节) 取值范围(0~2**32-1)(大概在42亿多)
2.tinyint微小整形(1个字节)
有符号(signed默认):取值范围(-128~127)
无符号(unsigned):取值范围(0~255)
3.smallint小整形(2个字节)
4.bigint极大整形(8个字节)0~2**64-1
2浮点型
1.float(4个字节,最多显示7个有效位)
用法:字段名 float(m,n) m:总位数 n:小数位位数
float(5,2) 取值范围 999.99 ~ -999.99
注意:浮点型插入整数时会自动补全小数位
小数位如果多余指定位数,会对下一位四舍五入
2.double(8个字节,最多显示15个有效位)
3.decimal (最多显示28个有效位)
1.字段名 decimal(m,n)
2存储空间(整数部分和小数部分分开存储)
规则:将9位数字的倍数包装成4个字节
即:对于每个部分,需要4个字节来存储9位数的每个倍数,
剩余数字所需要的存储空间如下表:
剩余数字 字节
0 0
1-2 1
3-4 2
5-6 3
7-9 4
示例:decimal(19,9)
整数部分:19/9商2余1 4个字节+1字节=5字节
小数部分:9/9商1余0 4字节+0字节=4字节
2.字符类型
1.char(固定长度)
1.宽度取值范围:1~255
2.不给定宽度默认为1
2.varchar(变长)
1.取值范围:1~65535
3.char和varchar的特点
1.char:浪费存储空间,但是性能高
2.varchar:节省存储空间,但是性能低
4.text/longtext(4g)/blob/longblob(4g)
5.字符类型的宽度和数值类型的宽度的区别
1.数值类型的宽度为显示宽度,仅仅用于select查询时显示
和占用的存储空间大小无关,可用zerofill查看效果
2.字符类型的宽度超过则无法存储
3.枚举类型(字段值只能在列举的范围内选择)
1.单选(最多65535个不同值)
字段名 enum(值1,值2,.......,值n)
2.多选(最多64个不同值)
字段名 set(值1,值2,.......,值n)
4.日期时间类型
1.year:年 xxxx
2.date:日期 xxxx
3.time:时间 xxxx
4.datetime
timestamp:日期时间