mysql

来源:互联网 发布:数控车削编程实例 编辑:程序博客网 时间:2024/05/17 22:36


操作数据表中的记录


插入(insert):
insert users values(null,'Tom','123',25,1);
insert 插入记录时省略列名称的话,赋值时要与列数目对应
给自动标号的列(如id列 )可赋值NULL 或 DEFAULT


mysql> create table users(
    -> id smallint unsigned AUTO_INCREMENT PRIMARY KEY,
    -> username varchar
    -> (20) not null,
    -> password varchar(20) not null,
    -> age tinyint unsigned not null default 15,
    -> sex BOOLEAN
    -> );
Query OK, 0 rows affected


插入操作
mysql> INSERT users values(null,'厄加特','123456',default,1);
Query OK, 1 row affected
mysql> INSERT users values(default,'魔法少女','123456',default,1);
Query OK, 1 row affected
mysql> INSERT users (username,password,sex) values('小红','123456liu',0);
Query OK, 1 row affected


第二种insert插入方法(此方法可使用子查询SubQuery):
insert 表名 set 属性=值,属性=值;(此方法一次只能插入一条数据)


mysql> INSERT users SET password='123444444',username='正义巨像';


修改操作:


mysql> UPDATE users set age =age+5;
Query OK, 4 rows affected
Rows matched: 4  Changed: 4  Warnings: 0
mysql> UPDATE users set age=age+id,sex=0;
Query OK, 4 rows affected
Rows matched: 4  Changed: 4  Warnings: 0
mysql> UPDATE users set age=age+100 WHERE id%2=0;

Query OK, 2 rows affected
Rows matched: 2  Changed: 2  Warnings: 0


删除操作


mysql> DELETE FROM users WHERE id=2;
此时如果再插入一条数据  id为最大值+1; 因为AUTO_INCREMENT  原则就是id最大值+1,;


查询操作:
可以使用as 关键字设置别名  
as可以省略  但是这样当别名和表中字段相同时就会混淆
SELECT *FROM users;
mysql> SELECT username FROM users;
mysql> SELECT username as u FROM users;
+----------+
| u        |
+----------+
| 厄加特   |
| 小红     |
| 正义巨像 |
| 提莫     |
| 伊泽瑞尔 |
| 伊泽瑞尔
 |
| 迦娜     |
+----------+
7 rows in set


mysql> SELECT username id FROM users;
+----------+
| id       |
+----------+
| 厄加特   |
| 小红     |
| 正义巨像 |
| 提莫     |
| 伊泽瑞尔 |
| 伊泽瑞尔
 |
| 迦娜     |
+----------+
mysql> SELECT username FROM users WHERE age=15;


======================================================
条件查询:  where
查询结果分组: group by
mysql> SELECT * FROM users GROUP BY id desc;
+----+----------+-----------+-----+------+
| id | username | password  | age | sex  |
+----+----------+-----------+-----+------+
|  8 | 迦娜     | 1222      |  15 | NULL |
|  7 | 伊泽瑞尔
 | 1222      |  15 | NULL |
|  6 | 伊泽瑞尔 | 1222      |  15 | NULL |
|  5 | 提莫     | 1222      |  15 | NULL |
|  4 | 正义巨像 | 123444444 | 224 |    0 |
|  3 | 小红     | 123456liu |  23 |    0 |
|  1 | 厄加特   | 123456    |  21 |    0 |
+----+----------+-----------+-----+------+
查询结果分组的条件: having
mysql> SELECT * FROM users GROUP BY id desc Having id>=5;


+----+----------+----------+-----+------+
| id | username | password | age | sex  |
+----+----------+----------+-----+------+
|  8 | 迦娜     | 1222     |  15 | NULL |
|  7 | 伊泽瑞尔
 | 1222     |  15 | NULL |
|  6 | 伊泽瑞尔 | 1222     |  15 | NULL |
|  5 | 提莫     | 1222     |  15 | NULL |
+----+----------+----------+-----+------+


对查询结果排序
SELECT * FROM users ORDER BY age,id DESC;  (先对age进行降序,结果再对id进行降序)
GROUP BY(分组排列,因此重复的值只出现一次)
ORDER BY(对所有值进行排列)


限制查询结果的返回记录数目:limit 
(HAVING 和 LIMIT 不能同时使用)
mysql> SELECT * FROM users ORDER BY id desc,age asc LIMIT 3,3;
由于select返回的查询结果存放在一个集合中  所以使用limit 返回的是第四条记录开始的三条记录


如何把一个表中的记录插入到另一个表中:查找字段顺序  插入字段顺序 数据类型  要兼容
create table users3(
    id smallint unsigned AUTO_INCREMENT PRIMARY KEY,
    username varchar(20));
==================================
mysql> INSERT users3(id,uname) select id,username FROM users;
Query OK, 7 rows affected
Records: 7  Duplicates: 0  Warnings: 0
mysql> INSERT users3(uname) select username FROM users;
Query OK, 7 rows affected
Records: 7  Duplicates: 0  Warnings: 0
mysql> INSERT users3(uname) select username FROM users where id>4;


增删改查表中的重复单个字段/多个字段
http://www.imooc.com/wenda/detail/347991?block_id=tuijian_yw
0 0
原创粉丝点击