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类
数据库管理新建数据库、数据表等
类数据操作对数据的增删改查
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 新表名:
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
评论