MySQL day3---操作数据表中的记录

来源:互联网 发布:上海美食推荐 知乎 编辑:程序博客网 时间:2024/04/29 02:10

------Chapter4------------------------------------------------

插入记录:

1.INSERT [INTO] tbl_name [(col_name,...)]  {VALUES|VALUE} ({expr|DEFAULT},...),(...),...

eg:  

   CREATE TABLE users3(
    -> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    -> username VARCHAR(20) NOT NULL,
    -> password VARCHAR(32) NOT NULL,
    -> age TINYINT UNSIGNED NOT NULL DEFAULT 20,
    -> sex BOOLEAN
    -> );

     INSERT users3 VALUES(NULL,'TOM','123',25,1);     

     INSERT users3 VALUES(DEFAULT,'ALICE','231',25,1);

      INSERT users3 VALUES(DEFAULT,'ALICE','231',3*7-4,1),(NULL,'ROSE',md5('123'),DEFAULT,0);    

2.INSERT [INTO] tbl_name SET col_name = {expr|DEFAULT},...

        eg:

              INSERT users3 SET usersname = 'Ben',password='456';

3.INSERT [INTO] tbl_name [(col_name,...)] SELECT ...(此方法可将查询结果插入到指定数据表)


更新记录:
单表更新:UPDATE [LOW_PRIORITY][IGNORE] table_reference SET col_name1 = {expr1|DEFAULT}[,col_name2 = {expr2|DEFAULT}] ... [WHERE where_condition]

eg:

       UPDATE users3 SET age = age - id,sex = 0;

       UPDATE users3 SET age = age+5;

       UPDATE users3 SET age = age + 10 WHERE id % 2= 0;(WHERE 选定偶数列进行更新)


删除记录:

单表更新:DELETE FROM tbl_name [WHERE where_condition]

eg:

      DELETE FROM users3 WHERE id = 6;


查询表达式解析(SELECT):

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_expr 查询表达式

                      每一个表达式表示想要的一列,必须有至少一个。

                      多个列之间以英文逗号分隔。

                      eg : SELECT id,username FROM users3;(username id 顺序改变 结果列也会改变)

                      星号(*)表示所有列,tbl_name.* 可以表示命名表的所有列。

                      eg: SELECT * FROM users3;

                      查询表达式可以使用[AS] alias_name 为其赋予别名。

                      eg:SELECT id AS userId,username AS uname FROM users3; (此时userId  uname 将在结果列中显示)

                      别名可用于GROUP BY , ORDER BY 或 HAVING 子句。

          

MySQL WHERE 语句进行条件查询

WHERE:

        条件表达式,对记录进行过滤,如果没有指定WHERE子句,则显示所有记录,在WHERE表达式中,可以使用MySQL支持的函数或运算符。


MySQL  GROUP BY语句对查询结果进行分组

  查询结果分组:[GROUP BY {col_name | position } [ASC | DESC] , ... ]

                              SELECT sex FROM users3 GROUP BY sex;

                              SELECT sex FROM users3 GROUP BY 1;


MySQL HAVING语句设置分组条件

   分组条件:[HAVING where_condition](聚合函数 或 出现在SELECT 函数中)

                       SELECT sex,age FROM users3 GROUP BY 1 HAVING age > 35;

                       SELECT sex FROM users3 GROUP BY 1 HAVING count(id) >= 2;


MySQL ORDER BY语句对查询结果排序

                [ORDER BY { col_name | expr | position } [ ASC | DESC ] , ... ]

                eg: SELECT  * FROM users3;

                       SELECT * FROM users3 ORDER BY id DESC ;

                     SELECT * FROM users3 ORDER BY age;

                      SELECT * FROM users3 ORDER BY age,id DESC; (如果按第一个能够完成排序就不管id 否则再按第二个id排序)


limit语句限制查询数量:

               限制查询结果返回的数量:[ LIMIT { [ offset, ] row_count | row_count OFFSET offset} ]

               eg:

                     SELECT * FROM users3 LIMIT 2 ; (返回 id 1 2 两条记录)

                     SELECT * FROM users3 LIMIT 3, 2; (返回 id 4 5两条记录,因为记录中从0开始标号)

                     SELECT * FROM users3 LIMIT 2,2;(此时返回 id 3,4两条记录)

                     SELECT * FROM users3 ORDER BY id DESC LIMIT 2,2;(从9开始倒序排列,此时返回7,6两条记录)

                 INSERT [INTO] tbl_name [(col_name,...)] SELECT ...(此方法可将查询结果插入到指定数据表)    

               eg:               CREATE TABLE test(
                                      -> id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
                                      -> username VARCHAR(20)
                                      ->);

                                     INSERT test(username) SELECT username FROM users WHERE age>=30;(对应列的个数要相同)

                                       

          

 

原创粉丝点击