SQL学习笔记--SoloLearn

在SoloLearn上又完成一门课程,是一直以来想学的SQL。曾经跟数据库也打过交道,都是很多片面的理解,这次系统的学习了一下SQL的内容,掌握了一些基本语法和应用。

SQL学习笔记--SoloLearn_第1张图片

学习笔记记录:

  • 一个表可以有数个列,以及任意数行
  • 每一个SQL语句都需要用;结尾
  • SQL语句对大小写不敏感,建议用大写
  • 空格和换行没有意义
  • 如果想要提取多列,可以用逗号隔开
  • *表示全部的内容
  • 关键词DISTINCT和select结合使用可以用来删除掉重复项
  • 关键词LIMIT可以用来限制取得的结果显示数,也可以加上位置便宜,如LIMIT 3,4表示从第4行开始取,一共取4行
  • 完全命名:可以用table_name.column_name来表示列,当有很多个表有相同名字的列时有用
  • Order by可以配合select使用,默认是字母升序,后面可以加多个列名,用逗号隔开,排序的时候先看前面的那个列,如果相同值,就看后面的列
  • WHERE条件语句,SELECT column_list FROM table_name WHERE condition,可以包含比较和逻辑运算符
  • 单引号表示字符,如果字符中本来就有单引号,需要把这个单引号变成双引号
  • 还有一些其他的操作符,比如AS,AVG,SUM,LIKE,MIN等,也可以写子条件语句

 

基本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数据库

你可能感兴趣的:(SQL)