mysql初识

结构化查询语言structured query language
一、认识数据库
1、检查是否按照mysql
`sudo service mysql start`
2、查看数据库
`show database`
3、连接数据库
`use databasename`
4、查看表
`show tables;`
5、退出
quit或exit

二、创建并插入
1、新建数据库
`create database 数据库名字;`创建成功可以用`show database;`进行查看
2、连接数据库
`use mysql_shiyan`
3、新建数据表
```create table 表名
(
列名a 数据类型(数据长度),
列名b 数据类型(数据长度),
列名c 数据类型(数据长度)
)
```
4、数据类型
enum 单选,比如性别
set 多选
char与varchar的区别:char的长度是固定的,不管你的输入是多少,存入内存中的字符都占定义的字节数。而varchar是按照实际长度存储。
5、插入数据
`insert into 表名(列名1,列名2,列名3) values(01,02,03)`
6、查询语句
`select * from employee;`

三、sql的约束
约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。
1、约束的分类
约束类型:主键、默认值、唯一、外键、非空
复合主键
`CONSTRAINT proj_pk PRIMARY KEY (proj_num,proj_name)`
proj_pk是主键名字自定义

四、select语句详解
1、基本用法
SELECT 要查询的列名 FROM 表名 WHERE 限制条件

`select name,age from employee;`

查找employee表中年龄大于25岁的 并且显示出来name和age列
`SELECT name,age FROM employee WHERE age>25`

查找一个名字为Mary的员工
SELECT name,age,phone FROM employee WHERE name="Mary";

2、"AND"与“OR"
WHERE 后面可以有不止一条限制,而根据条件之间的逻辑关系,可以用OR和AND连接。
```
#筛选出age大于25,且age小于30
SELECT name,age,phone FROM employee WHERE age>25 AND age<30;
#如果需要包含25和30,可以替换为age BETWEEN 25 AND 30;
```
3、IN 和 NOT IN 在或者不在

4、通配符
LIKE在SQL语句中和通配符一起使用,通配符代表未知字符。SQL中的通配符是_和%。其中_代表一个未指定字符,%代表不定个未指定字符。
找出前3位是110,后两位忘记的数字
`SELECT name,age FROM employ WHERE LIKE '110__'`

5、对结果排序
ORDER BY ,设置升序或者降序

6、内置函数和计算
count计数、sum求和、avg求平均值、max最大值、min最小值
```
#计算出salary的最大、最小值
SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee;
```
7、子查询
当要在多个表中处理才能得出结果时,就要用到子查询。
```
#想要知道”tom“员工所在部门做了几个工程。就要先找到tom员工是在哪个部门,然后再计算这个部门总共的工程数。
SELECT of_dpt,COUNT(proj_name) AS count_project FROM project WHERE of_dpt IN
(SELECT in_dpt FROM employee WHERE nama="Tom");
```

8、连接查询
在处理多个表时,子查询只能在结果来自一个表时才有用。但如果需要显示两个表或多个表中的数据,就要用join。思想是把两个或多个表当作一个新的表操作。

五、数据库及表的修改和删除
1、删除数据库
`DROP DATABASE test_01;`
2、对一张表进行修改
重命名一张表
RENAME TABLE 原名 TO 新名字;
3、对一列的修改
- 增加一列:alter table 表名 add 列名 数据类型 约束
并且可以对插入的列进行位置控制可以用after和first关键词,默认情况下在最后一列。
- 删除一列
alter table employee drop 列名
- 重命名一列
alter table 表名 change 原列名 新列名 数据类型 约束
注意数据类型是必须的。
- 改变数据类型
alter table 表名 modify 列名字 数据类型
4、对表的内容修改
- 修改表中某个值
update 表名字 set 列1=值1 where 条件
一定要有条件值。
- 删除一行记录
delete from 表名 where 条件

六、其他基本操作
1、索引
索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容。
当表中有大量记录,若对表进行查询,没有索引的情况是全表搜索,将所有记录-取出,和查询条件进行-对比,然后返回满足条件的记录。这样做会消耗大量数据库系统时间,并造成大量磁盘i/o。
- 对某列创建索引
create index 索引名 on 表名 (列名)

2、视图
视图是从一个或多个表中导出来的表,是一种虚拟存在的表。
它就像一个窗口,通过这个窗口可以看到系统专门提供的数据,这样用户可以不用看整个数据库,而只关心对自己有用的数据。
- 创建视图
create view 视图名(列a,列b,列c) as select 列1, 列2, 列3 from 表名字;

3、导入
可以把文件里的数据保存进一张表。
load data infile '文件路径' into table 表名字;

4、导出
5、备份
6、恢复

原文地址:https://www.cnblogs.com/luoqian/p/6375515.html