数据库就是将大量数据把保存起来,通过计算机加工而成的可以高效访问的数据集合
数据库是长期储存在计算机内、有组织的、可共享的数据集合。
①Oracle Database:甲骨文公司
②SQL Server:微软公司
③DB2:IBM 公司
④PostgreSQL:开源
⑤MySQL:开源
⑥Access:微软公司 [古董]
数据库虽然有各种各样的,但是其实数据库语句都是相通之处
三、数据库的基本知识数据库结构
1.服务端:用于接收并处理其它程序发出的请求的程序(软件),或者是安装此类程序的设备(计算机)。
2.客户端:向服务器发出请求的程序(软件),或者是安装此类程序的设备(计算机)。
3.库:就是一堆表组成的数据集合
4.表(table):类似 Excel,由行和列组成的二维表。
5.字段:字段就是表格的表头
6.记录:表里面的数据【注意】关系数据库必须以行为单位进行数据读写。
四、基本SQL语法SQL 语句:用关键字、表名和列名等组合而成的一条语句。
3 种 SQL 语句种类:
(1)DDL(数据定义语言):创建、删除或修改数据库以及数据库中的表等对象。
①CREATE:创建数据库和表等对象
②DROP:删除数据库和表等对象
③ALTER:修改数据库和表等对象
(2)DML(数据操作语言):查询或修改表中的记录。
①SELECT:查询表中的数据
②INSERT:向表中插入数据
③UPDATE:修改表中的数据
④DELETE:删除表中的数据
(3)DCL(数据控制语言):确认或取消对数据库中的数据变更的执行操作,以及对用户的操作数据库中的对象权限进行设定。
基本SQL语法
数据库操作:
CREATE DATABASE db_name [新建数据库]
Show databases; [查看所有数据库]
DROP DATABASE db_name; [删除数据库]
USE db_name;
CREATE TABLE table_name (column_name column_type); [新建表]
Show tables; [查看所有数据表]
DROP TABLE table_name; [删除表格]
Desc table_name [查看表的类型]
ALTER TABLE table_name DROP i; [删除表里面的字段]
ALTER TABLE table_name ADD i INT; [添加表里面的字段]
ALTER table ta change b bbb int; [修改字段名和属性]
字段其实是有一些属性的。
主键 PRIMARY KEY [不能为空且唯一] 设置编码:CHARSET=utf8
自增长 AUTO_INCREMENT NOT NULL 数据不能为空
数据类型: varchar(255) int(20) char float
https://www.runoob.com/mysql/mysql-data-types.html
插入数据:
INSERT [INTO] user (username,password) VALUES (’admin’, ’admin’);
修改数据:
UPDATE table_name SET col_name=value,… [WHERE 字段=字段值]
查询数据:
SELECT user,password FROM user WHERE 字段=字段值
删除数据:
DELETE FROM table_name where 字段=字段值
mysql字符串是可以接受16进制的 [https://www.bejson.com/convert/ox2str/]
select database(); 查询当前库名
SQL 语句书写规范:
①以英文分号(;)结尾;
②SQL语句本身大小写不敏感,不区分关键字的大小写;【注意】插入到表中的数据是区分大小写的,如“HI”、“Hi”和“hi”都不同。
③该系列随笔将采用“关键字大写,表名和列名的首字母大写”的格式。
④单词使用英文空格或换行符隔开
常数的书写方式:
字符串、日期:用单引号括起来(\'),如\'Hello World\',\'2018-12-4\'。
数字:直接书写,不用加单引号,如:5。
2-3 高级查询与子查询 一、MySQL的基础查询语句select*from 表 order by 字段 [ASC(默认)/DESC];
升序(从小到大)ASC,降序(从大到小) DESC.
select*from 表 limit n,m;
n表示从第几行开始,m表示取几条。
select *from 表 where username like \'%%\' 模糊查询
运算符号: + - * / %
逻辑运算:
NOT (!)
AND (&)
OR
(|)
表的内容无重复:
SELECT * FROM 表1 UNION SELECT * FROM 表2;
表的内容有重复:
SELECT * FROM 表1 UNION ALL SELECT * FROM 表2;
注意事项:
两次查询的列数必须一致。
官方定义:子查询是一种常用计算机语言SELECT-SQL语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询。
老师理解:子查询就如同1+2*2=5 (1+2)*2=6
子查询就是优先执行,然后执行得到的结果作为某个查询的条件
select *from user where username = (select username from admin where id=1);
admin表当id=1的用户名是否在user表也存在
select*from user where username in (select username from admin)
检查admin表和user表是否有用户名相等