sql语句
- 创建数据库:CREATE DATABASE 数据库名;
- 删除数据库:DROP DATABASE 数据库名;
- 选择数据库:user 数据库名; (cmd操作时 返回Database changed 代表该数据库存在)
- 创建表格:CREATE TABLE 或者 CREATE TABLE IF NOT EXISTS (表示若表不存在创建);
INT、 VARCHAR(100)、DATE 代表属性 int型、100字符的String、时间类型
UNSIGNED 无符号
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1
NOT NULL 输入字段不能为null
PRIMARY KEY 定义主键
ENGINE 设置存储引擎(选填)
CHARSET 设置编码(选填)
CREATE TABLE IF NOT EXISTS `tableName`( `id` INT UNSIGNED AUTO_INCREMENT, `colum1` VARCHAR(100) NOT NULL, `time` DATE, PRIMARY KEY(`id`) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 删除表格: DROP TABLE 表名 ;
- 插入数据:INSERT INTO 表名(属性1,属性2,属性3)VALUES(值1,值2,值3)WHERE 条件; 注意not null且没有设置默认值的必填,where 为选择条件,选填
- 更新数据:UPDATE 表名SET 属性1=新值1, 属性2=新值2 WHERE 条件;where 为选择条件,选填,更新属性1和属性2的值
- 删除数据:DELETE FROM 表名 WHERE 条件;where 为选择条件,选填
- 查询数据:SELECT * FROM 表名 WHERE 条件············
- 查询条件写在where侯马,*为全部查询,也可以选择具体属性。
- where 可以包含多个条件,用and 和 or 连接,代表 “并且”、“或者”。
- where后面运算符:
- =等于、<> !=不等于、>大于、<小于、>=大于等于、<=小于等于
- <=> 严格比较两个null是否相等
- between(num1,num2) 两值范围内,not between(num1,num2) 不在两值内 ,
- in(数据组)在集合中、not in(数据组)不在集合中
- like 模糊查询
- REGEXP 、 RLIKE正则匹配
- IS NULL 空、IS NOT NULL不是空
select * from table2 where num1=1 and num2>2 or num3 in(1,2,3,4,5,6); //where条件 中like 使用。 表示 name的值,借尾是abc的就返回;‘abc%’表示开头是abc就返回;‘%abc%’表示包含abc就返回。一般用作模糊查询 select * from table2 where name like ‘%abc’; //AS 代表输出时user_name被输出为Name select user_name as Name from table2 ; //UNION连接表:UNION表示连接2个及以上的select 查询结果集合到一个集合里,会自动筛除重复数据 select book from table1 UNION select book from table2;
- LEFT JOIN连接表:获取左表所有记录,即使右表没有对应匹配的记录。
- RIGHTJOIN连接表:用于获取右表所有记录,即使左表没有对应匹配的记录。
- FULL OUTER JOIN:获取两张表中所有字段,两张表,有一张表返回数据不是null就返回
- INNER JOIN连接表:获取两个表中字段匹配关系的记录。
- 相当于 select book,money from table1 , table2 where table1.bookname=table2.bookname 但这个会把所有可能的组合都创建出来,低效利用数据库资源
- 连接表也可以如此查询,以left join 为例: 括号内是查询出的字段,命名为C,并与A进行匹配、显示
select A.id, C.num from left join (select id, number as num from B)as C on C. id=A.id
- ORDER BY 排序: asc 为升序 desc 为降序
- Group by 分组 按照bookType 统计数量并分组
null 判断 ,不能用!=,=判断select * from table2 order by name asc ; select count(*) from table2 where group by bookType;
select * from table where name is null; select * from table where name is not null;