当前位置:Gxlcms > 数据库问题 > Mysql基础

Mysql基础

时间:2021-07-01 10:21:17 帮助过:25人阅读

MySQL数据库

一、基本使用

cls 清屏(windows)

ctrl + l 清屏(linux)

1、开启或关闭mysql服务

(1)windows:超级管理员权限下才能使用

? 启动mysql:net start mysql

? 停止mysql:net stop mysql

(2)linux:直接启动即可

? 启动mysql:service mysql start

? 停止mysql:service mysql stop

? 重启mysql:service mysql restart

2、基本权限操作

登录操作

? musql -u用户名 -p密码 -h地址ip

? (1)登录到本地mysql,默认用户root是最高权限账户

? mysql -u用户名 -p密码 -h地址ip

? (2)退出mysql

? \q 或 exit

? (3)远程连接mysql服务器

? mysql -uroot -p -h192.168.134.131

用户操作

? (1)查询当前登录的用户

? select user();

? (2)设置密码

? set password = password("1324")

? (3)去除密码

? set password = password("")

权限操作

? ipconfig:windows查询IP命令

? ifconfig:linux查询命令

? (1)windows连接远程linux中的mysql

? create user "库名"@"192.168.134.131(网络地址)" identified by "1234(设置的登陆密码)";

? (2)给具体某个网段下的所有ip设置账户 % 代表任意的数据0~255

? create user "库名"@"192.168.134.131(网络地址)" identified by "1234(设置的登录密码)"

? (3)所有的IP都可登录

? create user "库名"@"%" identified by "1234(设置的登陆密码)"

"""USAGE 没有任何权限"""
mysql> show grants for "ceshi12"@"%"; 
+-------------------------------------+
| Grants for ceshi12@%                |
+-------------------------------------+
| GRANT USAGE ON *.* TO ‘ceshi12‘@‘%‘ |
+-------------------------------------+
1 row in set (0.00 sec)

? (4)grant 权限 on 数据库.表名 to "用户名"%"ip地址" identified by "密码";

"""
# 主要权限
select  查询数据库的权限
insert  插入数据库的权限
update  更新数据库的权限
delete  删除数据库的权限
* 代表所有
"""

? 查询权限:grant select on *.* to "用户名"@"%" identified by "密码";

? 所有权限:grant all on *.* to "用户名"@"%" identified by "密码";

? 查看所有数据库:show databases;

? 移除权限:revoke all on *.* from "用户名"@"%";

? 删除账户:drop user "用户名"@"%";

? 刷新权限,立刻生效:flush privileges

3、数据库详细操作

(1)操作 [ 数据库 ] 文件夹操作

? 增:create

? 创建数据库:create database 数据库名 charset utf-8;

? 删:drop

? 删除数据库:drop database 数据库名;

? 改:alert

? alert database 数据库 charset gbk;

? 查:show

? 查看所有的数据库:show databases;

? 查看数据库的建表语句:show create database 数据库名;

(2)操作 [ 数据库 ] 文件操作

? 选择数据库

? use 数据库名

? 增:create

? 增加表:create table 表名(字段名1 字段类型2, 字段名2 字段类型2);

? 删:drop

? 删除表:drop table 表名

? 改:alert

? modify只改数据类型:alert table 表名 modify name char(5);

? change连字段和数据类型一起改:alert table 表名 change 字段名 要更改的字段名 字段类型;(可以只更改一项)

? add添加字段:alert table 表 add 要添加的字段 字段类型;

? add column添加:add column列(字段,关键字):alert table 表 add column age;

? drop column删除:drop column列(字段,关键字):alert table 表 drop column age;

? rename 更改表名:alert table 表名 rename 新表名;

? 查:show、desc

? 查询所有数据表:show tables;

? 查看建表的语句:show create table 表名 # ( 加上\G 垂直显示 ,默认横向显示)

? 查看表结构:desc 表名;

(3)操作记录(文件李里面的数据)

? 注:mysql null 相当于 python None 是一样的代表为空

? 增:insert

? 一次插入一条数据:insert into 表名(字段1, 字段2, ...) value(值1, 值2, ...)

? 一次插入多条数据:insert into 表名(字段1, 字段2, ...) values(值1, 值2, ...), (值1, 值2, ...), ...

? 注:value和values是一样的,区别是插入一条数据value的执行效率快于values的执行效率;

? 当插入多条数据是时,values的执行效率快于value的执行效率

? 不指定具体字段时,默认把所有字段查询一遍:insert into 表 values(值1, 值2, ...)

? 可以具体指定某个字段进行插入:insert into 表(字段) value(值)

? 删:delete

? 删除id为2的某条数据:delete from 表 where id = 2

? 删除表中所有数据:delete from 表

? 改:update

? 更改符合条件的数据:update 表名 set 字段=值 where 条件

? 更改所有数据:update 表名 set 字段=值

? 查:select

? * 代表所有:select * from 表;

? 把要搜索的字段写在select后面:select id, name from 表;

二、数据库中常用的数据类型

1、整型

? tinyint:1个字节 有符号(-128~127)无符号(unsigned) 小整型值

? int:4个字节 有符号(-21亿~21亿)无符号(0~42亿) 大整型值

2、浮点型

? float:(255,30)单精度,float存在四舍五入,小数位默认保留5位

? double:(255,30)双精度,double存在四舍五入,小数位默认保留16位

? decimal:(65,30)金钱类型,使用字符串的形式保存小数,decimal也存在四舍五入,默认保留整数

	"""存在四舍五入"""
	create table t2(f1 float(5,2) , f2 double(5,2) , f3 decimal(5,2));
	insert into t2 values(1.666666666666666666666666666,1.666666666666666666666666666,1.666666666666666666666666666);		

	"""float 小数位默认保留5位,double小数位默认保留16位,decimal 默认保留整数位,存在四舍五入"""
	create table t3(f1 float , f2 double , f3 decimal);
	insert into t3 values(1.666666666666666666666666666,1.666666666666666666666666666,1.666666666666666666666666666);		
	
	# float(5,2) 5=>代表总长度(整数+小数)  2=> 小数长度,保留2位
	create table t6(f1 float(5,2));
	insert into t4 values(12.34567);
	insert into t5 values(1234.34567);y

3、字符串

? char:固定开辟空间长度,但开辟空间速度快;牺牲空间换取时间;像手机号、身份证号等

? varchar:不固定开辟空间长度,可根据存入值开辟对应长度空间,但开辟空间速度慢;

? 牺牲时间,换取空间;例如:小广告或评论等

? text:文本类型,针对于很长的字符串,像小说,文章等

4、concat拼接

? 查询当前用户:select user()

? concat:把所有的参数拼接在一起

? select concat(参数1, 参数2, ...)

5、枚举和集合

? enum 枚举:从列出来的数据当中选一个(例如:性别)

? set集合:从列出来的数据当中选多个(自动去重)

create table 表(
	id int , 
	name char(10), 
	money float(6,2) , 
	sex enum("man","woman"),
	hobby set("beat_doudou","smoke","drink","tang_head")	
	)
	
	# 正常写法
	insert into 表(id,name,money,sex,hobby) values(1,"张三",9.66666,"woman","smoke,tang_head");
	
	# 自动去重
	insert into 表(id,name,money,sex,hobby) values(1,"张三",9.66666,"woman","beat_doudou,beat_doudou,beat_doudou,beat_doudou");

Mysql基础

标签:存在   无符号   使用字符串   垂直   show   详细   table   enum   字节   

人气教程排行