-
create table if not exists user(
-> id smallint unsigned auto_increment primary key,
-> username varchar(20) not null default 'longge',
-> sex enum('1','2','3') default '1'
-> );
查看全部 -
创建数据表
查看全部 -
打开数据库
查看全部 -
MySQL字符型
查看全部 -
TIMESTAMP时间范围
1970年1月1日到2037年的一个值
查看全部 -
日期时间型
查看全部 -
存储数据选择合适的类型。
查看全部 -
数据库中的整型
查看全部 -
unique 可以为空 因为可以存在一个null
查看全部 -
给表中所有字段插入值:
INSERT 表明 VALUES();
给部分字段插入值:
INSERT 表明(字段名1,字段名2)values(value1,value2);
查询表:
SELECT * FROM 表名;
查看全部 -
数据的记录操作:
增:INSERT
更:UPDATE
删:DELETE
查:SELECT
1.插入记录:
INSERT [INTO] tb1_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFUALT},...),(...),...
注意:如果col_name被省略,意味着所有的列都要依次被赋值,不可以省略;
对于默认编号(AUTO_INCREMENT)的字段,使用NULL/DEFUALT进行插入;
而且插入的记录是识别算术,函数和字符表达式的
(2)INSERT [INTO] tb1_name SET col1_name={expr | DEFAULT}, ...
如:INSERT users2 SET username='***',password='****';
说明与第一种不同之处在于:此方法可以使用子查询(SubQuery)
(3)INSERT [INTO] tb1_name [(col_name, ...)] SELECT ...
此方法可以讲查询结果插入到指定数据表中
2.单表更新(当插入时,记录有错误或更改字段值):
UPDATE [LOW_PRIORITY] [IGNORE] table-reference SET col_name={expr1| DEFUALT}, [col_name2={expr | DEFUALT}]...[WHERE where
_condition]如果省略where条件的话就是所有条件都将更新:如UPDATE users SET age=age+id,sex=0; 然后select * FROM users查看结果。
或者:UPDATE users SET age=age+10,WHERE id % 2 = 0;
可看见:1.更新多条记录; 2. 也可用来修改命令。
3.删除记录:
单表删除:
DELETE FROM tb1_name [WHERE where_condition]
如:删除第六条记录:DELETE FROM users WHERE id = 6; 而后再添加记录:INSERT users VALUE(NULL,'111','222',33,NULL); 那么该条记录不会填充到第六条,而是以顺序填到最后一个
条件表达式
对记录进行过滤,如果没有指定WHERE子句,则显示所有记录。
在WHERE表达式中,可以使用MySQL支持的函数或运算符。4.查找记录
SELECT select expr [ select_expr ...]
[
FROM table references
[WHERE where_condition]
[GROUP BY {col_name | position} [ASC | DESC], ...]
[HAVING where condition]
[ORDER BY {col_name | expr | position} [ASC | DESC],...]
[LIMIT {[offset,] row-count | row_count OFFSET offset}]
]SELECT后面可以省略:如SELECT VERSION();/SELECT NOW();/SELECT 3+5;/SELECT id,username FROM users;/SELECT username,id FROM users;
所以查询顺序影响结果的输出顺序!!!
*表示所有的列
可以在查询的列前面加上表名+. 如:SELECT users.id,user2.password FROM users;
当列名称复杂时可以用别名:如 SELECT users.id AS usersid, users.username AS uname FROM users;(注意一下AS)
所以查询的别名也影响输出结果的列名!!!
查询结果分组:[GROUP BY {col_name | position} [ASC | DESC], ... ]
ASC 升序;DESC 降序;
如:SELECT sex FROM users GROUP BY sex/"位置"; 查看性别的分组结果。(一般指定名称就行)
在GROUP BY 进行分组的时候,还可以进行设置分组条件:[HAVING where_condition]
如:SELECT sex FROM users GROUP BY 1 HAVING age > 35; 这个语句错误,原因是sex里面没有age,所以更正为:SELECT sex,age FROM users GROUP BY 1 HAVING age > 35;或者采用聚合函数(max,min,sum等) 如 SELECT sex FROM users GROUP BY 1 HAVING count(id)>=2;
还可以对查询分组的结果进行排序:
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]
如:SELECT * FROM users ORDER BY id age DESC; 默认是升序。
除了返回记录的排序还可以对记录进行限制查询结果的数量:
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
如:SELECT * FROM users LIMIT 2; 返回两条记录;
SELECT * FROM users LIMIT 2,2;返回的是偏移值(索引号)为2的记录开始的两条记录(不管升序还是降序,第一条记录的索引号都是0);
插入记录:
INSERT [INTO] tbl_name SET col_name={expr | DEFAULT),...
说明:与第一种方式的区别在于,此方法可以使用子查询(SubQuery)(他可以将查找的数据插入到指定数据表)如:INSERT test(username) SELECT username FROM users WHERE age >= 30; 查找username表里的age>=30的username,插入到test表中的username列————综合一点的
查看全部 -
查询指定语句
查看全部 -
创建主键
create table if not exists t2 (
-> id smallint unsigned auto_increment primary key,
-> username varchar(20) not null
-> )
查看全部 -
insert tb1 values('logo',20,333.22); 默认给全部字段赋值
insert tb1(username,age) values('logo',20); 指定赋值的字段
查看全部 -
查看数据表的结构
show columns from tb1;
查看全部
举报