SQL语言简介

SQL:Structured Query Language,是结构化查询语言,用于访问和处理数据库的标准计算机语言。

SQL语言的特点:

  • 具有统一性,不同数据库的支持的SQL稍有不同

  • 非过程话语言

  • 语言简捷易懂

  • 以一种语法结构提供两种使用方式

SQL语法的特点:

  • 对关键字的大小写不敏感,例如Select、SELECT、SELect等都是一样的效果

  • 可以单行或者多行书写,以分号结束,这点和c++之类的是类似的

  • SQL语言的注释:

    • -- 单行注释,需要注意--后面一定要加一个空格

    • # 单行注释, #后面有没有空格都行

    • 多行注释用/* 多行注释 多行注释 多行注释 */

数据库系统简介

1. 数据库

类似于表格,一个以某种方式存储在磁盘上的数据的集合

2.数据库应用

数据库应用系统是指基于数据库的应用软件。

例如学生成绩管理系统、电商价格。

3.数据库软件

关系型数据库(RDBMS):

  • oracle数据库(老大,最挣钱的)

  • MySQL数据库(最流行中型数据库)

  • SQL server数据库(Windows上最好的数据库)

  • PostgreSQL数据库(功能最强大的开源数据库)

  • SQLite(最流行的嵌入式数据库)

非关系型数据库(NoSQL):

  • Redis(最好的缓存数据库)

  • MongoDB(最好的文档型数据库)

  • Elasticsearch(最好的搜索服务)

  • Cassandra(最好的列式数据库)

  • HBase(优秀的分布式、列式数据库)

非关系型数据库(NoSQL)存储数据有自己的方式和语言,不是用一张张表来存储。

4.SQL和数据库管理系统的关系

SQL是一种用于操作数据库的语言,SQL适用于所有关系型数据库。

MySQL、Oracle、SQLServer是一个数据库软件,这些数据库软件支持标准SQL,也就是通过SQL可以使用这些软件,不过每一个数据库系统会在标准SQL的基础上扩展自己的SQL语法。

大部分的NoSQL数据库有自己的操作语言,对SQL支持的并不好。

SQL语句一般可分为2类

  1. 数据库管理新建数据库、数据表等

  2. 类数据操作对数据的增删改查

mysql

1 DDL 数据定义语言 Data Definition Language

  • 作用是创建数据库,对库表的结构进行删除和修改等操作
    CREATE、DROP、ALTER、TRUNCATE

进入数据库
mysql -u root-p  #使用这种方式,接下来需要输入密码。密码是暗文
mysql -u root -p123456#可以直接将密码放在参数p的后面,但不安全
显示所有数据库
SHOW DATABASES;      
快捷键 ctrl+r
创建数据库
GREATE DATABASE[IF NOT EXISTS]数据库名:
删除数据库
DROP DATABASE[IF EXISTS)数据库名: 
修改数据库的编码
ALTER DATABASE数据库名CHARACTER SET字符集名:

  • 创建表
    主键primary key和auto increment必须连在一起使用
    书写规范:每个字段的语句最好分行写,容易检查
    最后的分号不能忘记

#首先得切换到需要建表的数据库下:
USE数据库名:
#创建表
GREATE TABLE[IF NOT EXISTS)] 表名(
列名1 数据类型1;
列名2 数据类型2;
......
);
查看表结构
DESC 表名:

删除表格
DROP 表名:

修改表
a.往表内添加列
ALTER TABLE 表名 ADD(
列名 数据类型
列名 数据类型
.......
);

b.修改列的数据类型:
ALTER TABLE 表名 MODIFY 列名 新数据类型

C.修改列名:
ALTER TABLE 表名
CHANGE 原列名 新列名 数据类型;

d.删除列:
ALTER TABLE 表名 DROP 列名;

e.修改表名称:
ALTER TABLE 原表名 RENAME TO 新表名:
  1. DML 数据操作语言 Data Manipulation Language

  • 作用是对数据库中的表记录进行操作的语言,包含往表中插入数据、表中数据的更新、表的删除等等
    INSERT,UPDATE、DELETE、CALL
    插入数据

#向指定列插入数据
#插入的数据的顺序必须对应列名的顺序
INSERT INTO表名(列名1,列名2,...)VALUES(列1对应的数据,列2对应的
数据。);

#向所有列插入数据时可以不用写列名,但是数据必须与列的顺序相对应
INSERT INTO 表名 VALUES(列1对应的数据,列2对应的数据...);

修改数据
#WHERE语句写入修改条件,没有条件可以不写
UPDATE 表名 SET 列名1 = 值1,… 列名n = 值n [WHERE条件];

删除数据
#别那除满足条件的记录:
#若没有where子句,则删除表格中的所有记录保留表结构
DELETE列名1,列名2】FROM表名WHERE条件I:
#别除数据:
TRUNCATE TABLE表名:
注:
DELETE和TRUNCATE的区别
(a)TRUNCATE删除过程是先drop table,然后再create Table效率比DELETE
高
(b)TRUNCATE册除无法回滚DELETE别除可以回滚 ```

2. DQL 数据查询语言Data Query Laguage 
* 作用是对数据库中的数据进行查询的操作,也是最常见和最重要的功能
	SELECT
4. DCL 数据控制语言Data Control Language
* 作用是对数据库中的登录和用户权限进行控制的语言
	GRANT REVOKE
		所有的语句以英文字符的“;”结尾
新增数据:INSERT INTO student(id,name,age)VALUES(1,'张三',10)
删除数据:DELETE FROM student WHERE name='张三
修改数据:UPDATE student SET age = 11 WHERE id = 1
查询数据:SELECT *FROM student