sql学习笔记

SQL

从命令行中连接mysql:

1 [root@host]# mysql -u root -p
2 Enter password:******

数据类型:

CHARACTER/CHAR:必须是事先设定好的长度。(要加单引号)

INT/INTEGER:整数或者负数

BLOB:大量文本数据。(要加单引号)

DATE:记录日期,通常是将来的日期。(要加单引号)

VARCHAR:储存文本数据,最大长度255个字符。(要加单引号)

DATETIME/TIMESTAPE:记录日期和时间,通常是当前时间。(要加单引号)

TIME:记录时间

DEC/DECIMAL:提供数值空间,直到装满为止。(数字个数,小数点个数)

基本命令:

CREATE DATABASE:使用这条语句设置装有表的数据库

USE DATABASE:进入数据库以设置需要的表

CREATE TABLE:开始设置表

DESC:查看表结构

DROP TABLE:删除出错的表

INSERT:插入数据

1 INSERT INTO table_name (col_name1,col_name2,...)
2             VALUES (value1,value2,...);

NULL:未定义的值,不等于0,也不等于空值。没有在INSERT语句中赋值的列默认为NULL。可以把列改为不接受NULL值,在创建表时使用关键之NOT NULL。

DEFAULT:可用于日后输入缺乏部分数据的记录时自动填入默认值。

SELECT *:用于选择表中的所有列。

WHERE:设定特定的搜索条件,只会返回符合条件的行

SELECT:只选择需要看到的列

1 SELECT col_name1,col_name2
2 FROM table_name
3 WHERE condition

BETWEEN:选择一个范围内的值。

LIKE 搭配 % 或 _:使用LIKE搭配通配符,可搜索部分文本字符串。

1 WHERE location LIKE '%CA';      //找以CA结尾的地点
2                     '_CA';      //一个未知字符的替身

转义:语句中的单引号应该转义

1 'Annika's diary'

结合查询:AND / OR

IS NULL:因为null!=null 因此用IS NULL来查找NULL。

1 WHERE
2 col_name IS NULL

IN:关键字IN,加上括号围起的值的集合,只要列值匹配集合中的任何值,立即返回该行或者该列(NOT IN相反)

1 WHERE
2 col_name IN (value1,value2);

NOT:not一定要跟在WHERE后,或者AND/OR后

DELETE:删除一行数据

1 DELETE FROM table_name     //单独这一行可以删除表中的每一行
2 WHERE
3 col_name = 'value';

UPDATE:改变数据

1 UPDATE table_name
2 SET
3 col_name = 'new_value'
4 second_name = 'new_value'
5  //如果不加WHERE,SET提到的每行都会被修改为新值
6 WHERE colname = 'old_value';    
SET:更新数值,而且可以做简单的运算

SHOW CREATE TABLE + table_name:返回可以重建表但没有数据的CREATE TABLE语句,这样可以查看表的创建方式

PRIMARY KEY:设定主键

AUTO_INCREMENT:让SQL软件自动为该列填入数字

ADD:添加

ALTER:更新表

1   > ALTER TABLE my_contacts
2     -> ADD COLUMN contact_id INT NOT NULL AUTO_INCREMENT FIRST,
3     -> ADD PRIMARY KEY (contact_id);

ATOMIC DATA:数据原始性。列中的数据已经拆解成查询所需的最小单位,就是具有原子性

  • 规则1:具有原子性意味着在同一列中不会存放多个类型相同的数据

  • 规则2:具有原子性意味着不会用多个列来存储类型相同的数据

FIRST NORMAL FORM(1NF):第一范式,每个数据行均需包含原子性数据值,而且每个数据行均具有唯一的识别方法

原文地址:https://www.cnblogs.com/annika/p/9126980.html