一、SQL ( Structure query language ) 结构化查询语言
#SQL语言分为4个部分:DDL(定义)、DML(操作)、DQL(查询)、DCL(控制)
"""1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
2、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
3、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE
4、DQL语句 数据库操纵语言:查询数据SELECT"""
1、关系型与非关系型数据库
"""mysql数据库管理软件,记录事物一些数据特征:
由库,表,记录组成.
库相当于一个文件夹
表相当于一个文件
记录就是文件里面一条一条的内容
表中的成员属性就是一个一个字段
可以为每个项目建立一个数据库
关系型数据库:表与表之间有联系
比如:mysql,oracle,db2,sqlserver
非关系型数据库: key-value 键值对形式 没有表的概念
比如:redis,mongodb,memcache"""
2、SQL语句中的快捷键
"""\G 格式化输出(文本式,竖立显示)
\s 查看服务器端信息
\c 结束命令输入操作
\q 退出当前sql命令行模式
\h 查看帮助"""
二、Linux与windows的Mysql服务启停
#windows
"""net start mysql
net stop mysql"""
#Linux
"""service mysql start
service mysql stop
service mysql restart"""
三、通过命令行连接MySQL
1、连接数据库
"""登录mysql的完整语法
mysql -u用户名 -p密码 -h地址ip"""
例:
#(1) 登录mysql语法 默认root账户 是系统最高权限用户
mysql -uroot -p127.0.0.1 =>localhost 本地ip地址#(2) 退出mysql
exit 或者 \q#(3) 远程连接mysql服务器
mysql -uroot -p -h192.168.65.135
2、查看登录用户、设置密码
"""# 查询当前登录的用户是谁
select user()
# 设置密码
set password = password("123456")
# 去除密码
set password = password("")"""
3、为某个IP设置账号密码
#给具体某个ip设置账号密码,用来访问数据库(公网ip)
create user ‘ceshi100‘@‘192.168.65.1‘ identified by ‘333‘;#给具体某个网段下的所有ip设置共同的账号密码,用来访问数据库(公网ip) %代表任意的ip 0~255
create user ‘ceshi101‘@‘192.168.65.%‘ identified by ‘444‘;#所有的ip都可以登录到服务器数据库中
create user ‘ceshi102‘@‘%‘ identified by ‘555‘;
3.1、为某个用户增加权限
3.1.1、查看权限
show grants for ‘ceshi102‘@‘%‘;
# USAGE 没有任何权限
"""+--------------------------------------+
| Grants for ceshi102@% |
+--------------------------------------+
| GRANT USAGE ON *.* TO ‘ceshi102‘@‘%‘ |
+--------------------------------------+
"""
3.1.2、增加权限
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‘@‘%‘# 刷新权限,立刻生效
flushprivileges
四、操作数据库
--增
--创建一个数据库, 如果存在s3会报错
create databasedb0824 charset utf8;--不会报错 1个warring
create database if not existss3--更改编码方式utf8
create database if not exists s4 character setutf8--查
--查看所有数据库
show databases--查看建立数据库的语句
show create database db0824 # CREATE DATABASE `db0824` /*!40100 DEFAULT CHARACTER SET utf8*/
--改
alter databasedb0824_1 charset gbk--删
drop database db0824_1;
五、操作数据表 (文件)
#先选择数据库#use 数据库名#退回到上一层#use mysql
--增
--字段名1 类型1 ,字段名2 类型2 , ... ...
create table t1(id int , name char);--查
--查看所有表
show tables;--查看建表语句 配合\G 可以垂直显示
show create tablet1;
"""Create Table: CREATE TABLE`t1_1` (
`id`int(11) DEFAULT NULL,
`name`char(1) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8
"""--查看表结构
desct1--改
--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 columnage--rename 更改表名
alter tablet1 rename t1_2--删
drop table t1_2;
六、操作记录 (文件中的数据)
--增
--一次插入一条数据
--insert into 表名(字段1,字段2,...) values(值1,值2, .... )
insert into t1_1(id,name) values(1,"xboy1");--一次插入多条数据
insert into t1_1(id,name) values(2,"xboy2"),(3,"xboy3"),(4,"xboy4");--不指定具体字段插入(默认把所有字段对应的值插一遍)
insert into t1_1 values(5,‘xboy5‘);--指定单个字段插入数据
insert into t1_1(name) values(‘xboy6‘);--查
--* 代表所有
select * fromt1_1;--指定字段进行查询
select id,name fromt1_1;--改
--update 表名 set 字段=值 where 条件
update t1_1 set name="kxq" where id = 1
--切记更改时,加上条件,否则全都改掉了
update t1_1 set name="kxq"--删
--指定id=2的这条数据删除
delete from t1_1 where id = 1
--如果不加条件,删除所有数据
delete fromt1_1--重置数据表 (删除数据 + 重置id)
truncate table t1_1;
七、常用数据类型
7.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) errorinsert into t1 values(2100000000,1)insert into t1 values(2100000000,128) errorinsert into t1 values(2100000000,127)
7.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
7.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;
八、 mysql中常用函数
select user()selectconcat()select concat(参数1,参数2,参数3 , ... ) 把所有的参数拼接在一起
九、枚举 和 集合
--enum 枚举 : 从列出来的数据当中选一个(性别)--set 集合 : 从列出来的数据当中选多个(自动去重) 爱好
create tablet6(
idint,
namevarchar(10),money float(6,3),
sex enum("男性","女性","禽兽","人妖","雌雄同体","半兽人","阿凡达"),
hobbyset("吃肉","抽烟","喝酒","喝假酒")
);--正常
insert into t6(id , name ,money , sex , hobby) values(1,"克拉伊买买提",56.7891,"半兽人","喝假酒,抽烟");--自动去重
insert into t6(id , name ,money , sex , hobby) values(1,"克拉伊买买提",56.7891,"半兽人","喝假酒,抽烟,抽烟,抽烟,抽烟");
原文:https://www.cnblogs.com/kongxiangqun/p/13580141.html