初始SQL语句 简单使用
- 2019 年 10 月 8 日
- 笔记
初始SQL语句 简单使用
- SQL语言共分为四大类:
- DQL (Data QueryLanguage )数据查询语言
- DML(Data manipulation language)数据操纵语言
- DDL(Data definition language)数据库定义语言
- DCL(Data Control Language)数据库控制语言
#DDL数据库定义语言 创建库、创建表 #DML数据库操纵语句存数据,删除数据,修改数据,查看 #DCL控制权限 # grant/revoke # 库 # create database 数据库名; # 创建库 # show databases; # 查看当前有多少个数据库 # select database();# 查看当前使用的数据库 # use 数据库的名字; # 切换到这个数据库(文件夹)下 # 表操作 # 查看当前文件夹中有多少张表 # show tables; # 创建表 # create table student(id int,name char(4)); # 删除表 # drop table student; # 查看表结构 # desc 表名; # 操作表中的数据 # 数据的增加 # insert into student values (1,'gkf'); # insert into student values (2,'gandan'); # insert into userinfo values (1,'gkf','gkf318'),(2,'gandan','6666'),(3,'goudan','9999');多行添加 # 数据的查看 # select * from student; # 修改数据 # update 表 set 字段名=值 # update student set name = 'goudan'; # update student set name = 'gandan' where id=2; # 删除数据 # delete from 表名字; # delete from student where id=1;
- 初识sql语句 ; 代表一个语句的结束
#进入mysql客户端 $mysql mysql> select user(); #查看当前用户 mysql> exit (回车) # 也可以用q quit退出 # 默认用户登陆之后并没有实际操作的权限 # 需要使用管理员root用户登陆 $ mysql -uroot -p # mysql5.6默认是没有密码的 #遇到password直接按回车键 mysql> set password = password('root'); # 给当前数据库设置密码 # 创建账号 mysql> create user 'gkf'@'192.168.10.%' IDENTIFIED BY '123';# 指示网段可以连接 mysql> create user 'gkf'@'192.168.10.5' # 指示某机器可以连接 mysql> create user 'gkf'@'%' #指示所有机器都可以连接 mysql> show grants for 'eva'@'192.168.10.5';查看某个用户的权限 # 远程登陆 $ mysql -uroot -p123 -h 192.168.10.3 # 给账号授权 mysql> grant all on *.* to 'gkf'@'%'; mysql> flush privileges; # 刷新使授权立即生效 # 创建账号并授权 mysql> grant all on *.* to 'gkf'@'%' identified by '123' # 查看表的字段基础信息: desc 表名; 或 describe 表名; # 查看编码相关: show variables like '%chara%'; # 查看所有表: show tables; # 创建表: create table 表名 (id int,name char(4)); # 查看表结构: show create table 表名;#(G可以格式化显示) # 查询当前数据库支持的存储引擎: mysql> show engines G; #(G格式化的意思) # 查看当前的默认存储引擎: show variables like '%engine%'; #(%代表其他内容) # 创建表并且指定引擎: create table t3 (id int,name char(4)) engine=memory; #(engine = "指定引擎")
- 简单的增删改查
1. 操作文件夹(库) 增:create database db1 charset utf8; 查:show databases; 改:alter database db1 charset latin1; 删除: drop database db1; 2. 操作文件(表) 先切换到文件夹下:use db1 增:create table t1(id int,name char); 查:show tables; 改:alter table t1 modify name char(3); alter table t1 change name name1 char(2); 删:drop table t1; 3. 操作文件中的内容(记录) 增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3'); 查:select * from t1; 改:update t1 set name='sb' where id=2; 删:delete from t1 where id=1; 清空表: delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。 truncate table t1;数据量大,删除速度比上一条快,且直接从零开始, *auto_increment 表示:自增 *primary key 表示:约束(不能重复且不能为空);加速查找
数据操作 增 删 改 查
- 增加 insert
- insert into 表名 values (数据1…),(数据2…)
- 所有的在这个表中的字段都需要按照顺序被填写在这里
- insert into 表名(字段名,字段名…) values (值1,值2),(值1,值2);
- 所有在字段位置填写了名字的字段和后面的值必须是一一对应
- insert into 表名(字段名,字段名…) values (值….),(值….),(值….)
- 所有在字段位置填写了名字的字段和后面的值必须是一一对应
- value单数与values复数 ,一次性写入一行数据,一次性写入多行数据, 一般全用 values
- 示列
表 id,name,age insert into t1 value (1,'gkf',23) insert into t1 values (1,'gkf',23),(2,'gandan',17) insert into t1(name,age) value ('gkf',23) insert into t1(name,age) values ('gkf',23),('gandan',17) #第一个角度 写入一行内容还是写入多行 insert into 表名 values (值....) insert into 表名 values (值....),(值....),(值....) #第二个角度 是把这一行所有的内容都写入 insert into 表名 values (值....) 指定字段写入 insert into 表名(字段1,字段2) values (值1,值2) #插入查询结果 insert into 表名(字段1,字段2,字段3…字段n) select (字段1,字段2,字段3…字段n) from 表2 where …;
- 删除 delete
- delete from 表 where 条件;
- 更新 update
- update 表 set 字段=新的值 where 条件;
- update mysql.user set password=password(‘123’) where user=’root’ and host=’localhost’;
- password=password(‘123’)调用的方法,密文存入数据库
- 查询 select语句
- select * from 表
- select 字段,字段.. from 表
- select distinct 字段,字段.. from 表 # 按照查出来的字段去重
- select 字段*5 from 表 # 字段数字值 四则运算 显示运算完的结果
- select 字段 as 新名字,字段 as 新名字 from 表 # 给查出字段取名字
- select 字段 新名字 from 表 # 给查出字段取名字
作 者:郭楷丰