在SoloLearn上又完成一门课程,是一直以来想学的SQL。曾经跟数据库也打过交道,都是很多片面的理解,这次系统的学习了一下SQL的内容,掌握了一些基本语法和应用。
学习笔记记录:
基本SQL语句:
show命令可以展示database的内容,如show databases可以展示服务器上的数据库
Show tables 展示当前选择的MySQL数据库中所有的tables
Show columns 展示给定table中的列信息,例如 show columns from customers
select命令可以用来从数据库中提取数据,结果存放在一个叫result-set的结果table中,语法是SELECT column_list FROM table_name
其他的SQL操作:
1.对于表的操作--
Join table,在where语句中将想要合并的项用等号列出来
->INNER JOIN
SELECT column_name(s)
FROM table1 INNER JOIN table2
ON table1.colunm_name=table2.column_name
->LEFT JOIN
SELECT table1.colunm1, table2.colunm2…
FROM table1 LEFT OUTER JOIN table2
ON table1.column_name = table2.colunm_name
->RIGHT JOIN
SELECT table1.column1, table2.column2…
FROM table1 RIGHT OUTER JOIN table2
ON table1.colunm_name = table2.column_name
UNION将数个数据表(可能不是属于一个database的)连到一起,去除重复
UNION ALL不去除重复
两个表必须有相同的列数且列的数据类型是一样的
插入数据
INSERT INTO table_name
VALUES (value1, value2, value3,…)
插入的是行
或者在table_name后面把列名具体列出来,如果某一列没有给值,默认值是0
更新数据
UPDATE table_name
SET colunm1=value1, column2=value2,…
WHERE condition
条件语句如果不写将会刷新整个表
删除数据
DELETE FROM table_name
WHERE condition
创建数据表
基本语法:
CREATE TABLE table_name
(
Column_name1 data_type(size),
Column_name2 data_type(size),
Colunm_name3 data_type(size),
…
colunmN data_type(size)
);
数字可以用int,float(m,d) m是长度d是小数位,double(m,d)
字符可以用varchar(100) 表示最长100个字符,char(m)固定长度字符长度必须是m,blob二进制数据如图像或者其他类型的文件,text 文档数据
日期和时间用date 格式是yyyy-mm-dd,datetime yyyy-mm-dd hh:mm:ss, timestamp, time hh:mm:ss
在创建的时候还可以制定primary key
2.SQL的约束
NOT NULL 列中不含NULL数值
UNIQUE 列中不含重复数值
PRIMARY KEY 创建一个唯一的索引可以更方便的接入表
CHECK 检验数值是不是符合逻辑
DEFAULT 如果在插入数据的时候没有制定值,就会被设置成default
在创建数据表的时候,可以在后面加上这些约束条件,比如 name varchar(100) NOT NULL 不允许空值
还可以使用AUTO_INCREMENT来创建自动增加的值,一般用于primary key
3.修改数据表
ALTER TABLE 可以用来增加ADD删除DROP COLUMN/TABLE修改表CHANGE(相当于重命名)
4.创建预览
CREATE VIEW view_name AS
SELECT colunm_name(s)
FROM table_name
WHERE condition;
后面可以跟 SELECT * FROM view_name 来查看这个预览,预览是实时变化的
其他:
SQL是一个数据库语言,相当于C语言
MySQL是开源的数据库管理系统,中小型数据库,被Oracle收购;其他还有微软的SQL server,Oracle的大型数据库
PHPMyAdmin是一个用PHP编写的软件工具,可以通过web方式控制和操作MySQL数据库