0824Python总结-初识数据库

part1

登录mysql的完整语法
	mysql -u用户名 -p密码  -h地址ip
1.登录mysql语法 默认root账户 是系统最高权限用户
mysql -uroot -p
2.退出mysql
exit 或者 \q
3.远程连接mysql服务器
mysql -uroot -p -h(192.168.175.128)

part2

1.查询当前登录的用户是谁
select user()
2.设置密码
set password=password("123456")
3.去除密码
set password=password("")

part3

# 给具体某个ip设置账号密码,用来访问数据库(公网ip)
create user 'ceshi100'@'129.168.172.1' identified by '333';
# 给具体某个网段下的所有ip设置共同的账号密码,用来访问数据库(公网ip) %代表任意的ip 0~255
create user 'ceshi101'@'192.168.172.%' identified by '444';
# 所有的ip都可以登录到服务器数据库中
create user 'ceshi102'@'%' identified by '555';

# 刷新权限,立即生效
flush privileges
# 查看哪个ip哪个用户的权限
'''USAGE 没有任何权限'''
show grants for 'ceshi102'@'%';
+--------------------------------------+
| Grants for ceshi102@%                |
+--------------------------------------+
| GRANT USAGE ON *.* TO 'ceshi102'@'%' |
+--------------------------------------+
grant 权限 on 数据库.表名 to '用户名'%'ip地址' identified by '密码'
"""
# 主要权限
select 查看数据表的权限
insert 插入数据表的权限
update 更新数据表的权限
delete 删除数据表的权限
drop   删除数据库的权限
*      代表所有
"""
grant select,drop on *.* to 'ceshi102'@'%' identified by '333'
# all 代表所有权限
grant all on *.* to 'ceshi102'@'%' identified by '333';
# 移除权限
# 单个
revoke drop on *.* from 'ceshi102'@'%'
# 所有
revoke all on *.* from 'ceshi102'@'%'
# 删除用户
drop user 'ceshi102'@'%'

# 刷新权限,立即生效
flush privileges

part4(必须会)

1.操作[数据库](文件夹)
# 创建一个数据库
	create database db0824 charset utf8;# 查看所有的数据库
	show databases
	# 查看建立数据库的语句
	show create database db0824  # CREATE DATABASE `db0824` /*!40100 DEFAULT CHARACTER SET utf8 */
改
	alter database db0824_1 charset gbk
删
	drop database db0824_1;
2.操作[数据表](文件)
# 先选择数据库
	use 数据库名

增
	# 字段名1 类型1 ,字段名2 类型2,......
	create table t1(id int,name char);# 查看所有表
	show tables;
	# 查看建表语句 配合\G 可以垂直显示
	show create table t1;
	"""
	Create Table: CREATE TABLE `t1_1` (
	  `id` int(11) DEFAULT NULL,
	  `name` char(1) DEFAULT NULL
	) ENGINE=InnoDB DEFAULT CHARSET=utf8
	"""
	
	# 查看表结构
	desc t1;# modify 只能改变数据类型
	alter table t1 modify name char(5);
	# change 连字段名 + 类型一起改变
	alter table t1 change name newname char(4)
	# add 添加字段
	alter table t1 add age int;
	# drop 删除字段 column列
	alter table t1 drop column age
	# rename 更改表名
	alter table t1 raname t1_2
删
	drop table t1_2;
3.操作[记录](文件中的数据)
# 一次插入一条数据
	'''insert into 表名(字段1,字段2,...) values(值1,值2,...)'''
	insert into t1_1(id,name) values(1,'cwj1');
	# 一次插入多条数据
	insert into t1_1(id,name) values(2,'cwj2'),(3,'cwj3'),,(4,'cwj4');
	# 不指定具体字段插入(默认把所有字段对应的值插一遍)
	insert into t1_1 values(5,'cwj5');
	# 指定单个字段插入数据
	insert into t1_1(name) values('cwj6');# * 代表所有
	select * from t1_1;
	# 指定字段进行查询
	select id,name from t1_1;# update 表名 set 字段=值 where 条件
	update t1_1 set name='崔6666' where id=1
	# 切记更改时,加上条件,否则全都改掉了
	update t1_1 set name='崔6666';# 指定id=2的这条数据删除
	delete from t1_1 where id=1;
	# 如果不加条件删除所有数据
	delete from t1_1;
	
	# 重置数据表(删除数据 + 重置id)
	truncate table t1_1;

part5 常用数据类型

1.整型
tinyint 1个字节 有符号(-128 ~ 127) 无符号(unsigned)(0~255) 小整型值
int     4个字节 有符号(-21亿~21亿 左右) 无符号(unsigned) (0 ~ 42亿) 大整型值

	create table t1(id int,age tinyint);
	insert into t1 values(2200000000,1)  error
	insert into t1 values(2100000000,1)
	insert into t1 values(2100000000,128) error
	insert into t1 values(2100000000,127)
2.浮点型
float(255,30)  单精度
double(255,30) 双精度
decimal(65,30) 金钱类型,使用字符串的形式保存小数

	"""默认存在四舍五入"""
	create table t2(f1 float(5,2),f2 double(5,2),f3 decimal(5,2));
	insert into t2 values(1.77777777777777777777777777,1.77777777777777777777777777,1.77777777777777777777777777);
	
	"""float 默认小数保留5位,double小数位截取16位,decimal(10,0)默认保留整数,存在四舍五入"""
	create table t3(f1 float,f2 double,f3 decimal);
	insert into t3 values(1.77777777777777777777777777,1.77777777777777777777777777,1.77777777777777777777777777);
	
	create table t4(f1 float(5,2));
	insert into t4 values(12.34567889)  # 12.35
	insert into t4 values(123.34567889)  # 123.35
	insert into t4 values(1234.34567889)  error
3.字符串
char    字符长度 255个
varchar 字符长度 21845个 (主要:总字节数不超过65535)

char(11)     定长: 固定开辟11个字符长度的空间(手机号,身份证号,银行卡),开辟空间速度上char速度更快
varchar(11)  变长: 最多开辟11个字符长度的空间(评论,消息留言,地址),开辟速度相较于char慢一点
text         文本类型,存论文,小说,文章..

	create table t5(c char(11),v varchar(11),t text);
	insert into t5 values('1111',"酸辣粉加上队列副经理开","sdfsdf234");
	insert into t5 values('1111',"酸辣粉加上队列副经2理开","sdfsdf234"); error
	# concat 拼接任意长度的字符串
	select concat(c,':',v,':',t) from t5;
4.mysql 中函数
select user()
select concat()
select concat(参数1,参数2,参数3,...) 把所有的参数拼接在一起

枚举 和 集合

enum 枚举: 从列出来的数据当中选一个(性别)
set  集合: 从列出来的数据当中选多个(自动去重) 爱好
	create table t6(
	id int,
	name varchar(10),
	money float(6,3),
	sex enum("男性","女性","禽兽","人妖","雌雄同体","半兽人","阿凡达"),
	hobby set("吃肉","抽烟","喝酒","喝假酒")
	);
	
	# 正常
	insert into t6(id,name,money,sex,hobby) values(1,"克拉伊买买提",56.7891,"半兽人","喝假酒,抽烟");
	# 自动去重
	insert into t6(id,name,money,sex,hobby) values(1,"克拉伊买买提",56.7891,"半兽人","喝假酒,抽烟,抽烟,抽烟,抽烟");

猜你喜欢

转载自blog.csdn.net/qq_45957580/article/details/108212274