MYSQL基础(关于基础的三种语言)
SQL:DDL,DML,DCL
- DDL(database definition language)定义数据库,表。
具体应用:
- 创建数据库A:create database A;
删除数据库A: drop database B;
- 查找系统中存在哪些数据库:show databases;
3.电脑里面开始的时候默认有4 个数据库,它们都是安装MySQL时系统自动创建的,其各自功能如下。
information_schema:主要存储了系统中的一些数据库对象信息。比如用户表信息、列信息、权限信息、字符集信息、分区信息等。
cluster:存储了系统的集群信息。(我自己电脑里面的数据库没有找到)
mysql:存储了系统的用户权限信息。
test:系统自动创建的测试数据库,任何用户都可以使用。
4.查找B数据库的表有哪几个:use database B;
Show tables;
查看具体的表例如hello表中的具体信息:desc hello;
更加详细查看hello表信息:show create table hello \G;(会看到这个表的存储引擎和字符集)
查找表中字段的记录信息:select * from bai;
5.在数据库C中创建一个表(有诸多要求,后面会讲解的):
Create database C;
Use C;
Create table hello(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));
hello:表的名字
表中三个字段:ename(姓名),hiredate(日期),sal(薪水)
Deptno(部门号,暂时没看到那里,后面会讲解)
6.删除表:drop table hello;
修改表的名字为hi:alter table hello rename hi;
修改表中的字段类型(例如将ename的类型改为varchar(20))
Alter table hello modify ename varchar(20);
增加一个字段age(默认放在最后):alter table hello add column age int(3);
(column:字段)
如果要放在第一个:alter table hello modify age int(3) first;
如果要放在ename的后面:alter table hello add age int(3) after ename;
删除字段age:alter table hello drop column age;
修改表的字段名字和类型:alter table hello change age agel int(4)(age--agel,修改表中的字段名字只可以用change,不可以用modify)
如果用change修改表的字段类型:要写两次字段名字:
Alter table hello change age age varchar(20);
- DML
为表中字段内容进行增添,修改,删除,更新。
- 更新记录:根据一个表对另一个表进行更新。在二者有着共同相同的条件下,可以是ename相同或者是编号depton相同。会用其他符号来代表两个表。
2.增添记录:insert into bai (ename,sal) values(‘wang’,’2000’);
还可以简写:insert into bai values(‘wang’,’2000’);(但是顺序要和字段顺序是一样的才可以)
3.删除记录:
删除了两个表中编号都为1的所有相关数据。
4.查询记录:select * from bai;(查询表中的全部记录),select ename from bai;(只查询字段ename)
查询不重复的记录:select distinct ename from bai;(查询得名字是不重复的)
查询某些具体的记录:用where当限制条件
查询排序后的某些记录:select * from bai order by sal;(按照薪水排序,一般默认为升序),如果是降序,为select * from bai order by sal desc;
按照好多限制条件排序:select * from bai by sal ,deptno;(多加了一个部门号)
只显示排序后的前两行:select * from bai order by sal desc limit 2;(一般默认从第一行开始,第一行默认为0)
从第二行开始显示前4行:select * from bai order by sal limit 1,4;
- 查询表中薪水最大,统计总的人数,部门人数等等。
关键字:count(1),sum(),min(),max()
- 表连接:目前为止还不是很了解(表连接通常用来优化子查询);union(汇总,去掉重复的)和union all(汇总即可),一般涉及一个字段就可以了。如果要将两个表中的内容安全合成为一张表,需要用到的就是表连接了。
- 子查询的一些用法:关键字:in,=,.......(待研究)
三.DCL
定义访问权限和安全级别。对象权限。