一、SQL语句概述:
- SQL语言
Structured Query Language的缩写,即结构化查询语言
关系型数据库的标准语言
用于维护管理数据库:数据查询、数据更新、访问控制、对象管理等功能。 - SQL分类:
DDL:数据定义语言
DML:数据操纵语言
DQL: 数据查询语言
DCL:数据控制语言 - 查看数据库结构:
(1)查看数据库信息:
代码:mysql> show databases; (注意要以;结尾)
代码:mysql > use mysql;(库名) test(测试数据库) mysql(重要文件数据库)
代码:mysql > show tables;(表名)
代码:select * from user(单位名) 查看里里面的东西
(2)查看表结构:
代码:describe user;(表名)
字段(列):属性的名称、属性的类型、是否容许为空?是否为主键、默认规则、拓展属性。 - DDL:创建数据库对象,如:库、表、索引
使用DDL语句新建库、表:
1、 创建数据库:create database 数据库名;
(显示Query OK 既是成功!)
2、创建数据表:create table 表名+(字段名称,类型,约束,)存储引擎,字符集; - 1、字段名称:自定义
- 2、字段类型:
int 整型 00000-99999
Double 浮点型 8字节
Decimal(5,2) 有效数字是5位,小数点后面保留2位
Float 单精度 4字节
Char (10) 固定长度字符串
Varchar(50) 可变长度字符串
- 3、约束:非空约束:内容不可以为空。
主键约束:非空且唯一
默认值:加入没有填写数据,默认预先设定的值填写
自增特性:id 1 2 3 4 auto_increment - 4、存储引擎:myisam innodb
- 5、字符集:UTF-8
例子:
远程连接:1、3306 2、数据库放权 3、防火墙
在真机上连接虚拟机上的数据库:在cmd里面输入:“mysql -h 192.168.100.100 -u root -p”
-
使用DDL语句删除库、表:
1、删除指定的数据库:drop tables数据库.表名
2、删除指定的数据库:drop database 数据库名 -
DML语句:对表中的数据进行管理。
Insert:插入数据
Update:更新原有数据
Delete: 删除不需要的数据
例子:<添加>
例子:<筛选> 将目标字段筛选出来到新建表,持久化保存!!!
例子:<修改>
例子:<删除>
-
破解密码:
1、vim /etc/my.cnf
在server-id=1的下面添加:
Skip-grant-tables 跳过密码验证 所有用户都可以免密进入数据库
2、改密码:
Mysql > use mysql ;
Mysql > select * from user;
Mysql > update mysql.user set authentication_string=password(‘123456’) where user=’zk’;
Mysql > flush privileges; -
DQL语句:数据查询语句,只有select
用于从数据库表中查找符合条件的数据记录。
清空表:truncate清空表 drop删除表
mysql > create database school(库名); 创建school库
Mysql > use school; 进到school库里面
Mysql > show tables; 查看表里面的内容
Mysql > create table info (id int(4) not null primary key auto_increment,name char(10) not null,score decimal(5,2),address varchar (50) default ‘未知’); 创建表
Mysql > describe info(表名); 查看表结构
Mysql > insert into info (name,score,address) values (‘zhangsan’,88.5,’nanjing’),(‘lisi’,90,’beijing’);
Mysql > select * from info; 查看表内容
1、零时表:用于保存一些临时数据,不会长期存在。“quit”回来就没了
Mysql > create temporary table temp_info(表名)(id int(4) not null auto_increment,name varchar(10) not null,hobby varchar(10) not null,primary key(id))engine=innodb default charset=utf8;
Mysql >desc temp_info; 查看表结构:
Mysql >insert into temp_info (name,hobby) values (‘tom’,’cat’); 表是在存放在内存里面
Mysql >show tables; 看不到
Mysql >select * from temp_info;
2、克隆表:
Mysql >create table tmp as select * from info;
Mysql >show tables;
Mysql >select * from tmp;
具体克隆表的过程:
1、复制表的结构:
Mysql >create table tmp like info;
Mysql >show tables;
Mysql >select * from tmp; 无数据
Mysql >desc tmp; 有框架
2、复制表的数据:
Mysql >insert into tmp select * from info; 将info表里面的数据复制到tmp;
3、用户提权与除权:
Mysql >select user from mysql.user; 查看系统用户
Mysql >use mysql;
Mysql >grant all on * .* to ‘jerry’@’locahost’ identified by ‘123’; *.* :所有的库表
Mysql >flush privileges; localhost:本地
Mysql >select user from mysql.user;
Mysql >show grants; 查看当前用户权限;
Mysql >show grants for ‘jerry’@’localhost’; 查看特定用户的权限。
除权:
Mysql >revoke all on *.* from ‘jerry’@’localhost’;
Mysql >show grants for ‘jerry’@’localhost’; 查看权限