MySql基本语法(一)

一:查看/数据库、表结构等

1:show databases查看所有数据库

2:use [name]切换使用某个数据库

3:show tables查看当前数据库的所有表

4:desc [name]查看某张表的表结构

二:基础命令--创建/修改表、列等名称

1:CRATE TABLE [表名] (列名1类型,列名2类型);创建一张普通表

 id primary key auto_increment not null   创建不为null的自增长的主键

2:ALTER TABLE [表名] ADD [列名,类型] 给表增加一列

3:ALTER TABLE[表名] CHANGE [旧列名称] [新列名称 新类型] 修改某列的名称或者是类型

4:ALTER TABLE [旧表名] RENAME [新表名]  修改表名称

5:ALTER TABLE [表名] DROP [列名] 删除列

6:ALTER TABLE[表名] MODIFY [列名] 后面跟具体的类型,默认值,是否为null的修改

    记住名称,类型 都要带上

三:基础命令--INSERT插入

1:INSERT INTO [表名] (列名1,列名2) VALUES (, ,);带列名字段单条插入

2:INSERT INTO [表名]  VALUES (, ,);不带列名字段单条插入。

3:INSERT INTO [表名]  VALUES(, ,),(, ,),(, ,);一次性插入多条

4:如果主键是自增长的,INSERT INTO [表名]  VALUES (null,, ,)可以用null来表示自增加的那列。

四:基础命令--UPDATE更新

1:UPDATE [表名] SET [需要修改列数据]

UPDATE tb SET age=20 WHERE name=’t1’;

把名字是t1的年龄修改成20,注意如果不带where条件则是修改所有的数据哦同样如果只是想修改某一条数据则条件最好带一个唯一性的字段,比如修改某个名字的年龄,名字作为条件,但是名字在数据库可能会有同名的,这样修改会导致修改到不想修改的数据

2:

五:基础命令--SELECT查询,常用查询条件语法等

1:SELECT * FROM [表名]*号==表名,代表查询当前表的所有字段 即查询所有数据

2:SELECT * FROM [表名] WHERE [条件] where关键字后面带条件,查询当前表满足条件的数据

注意:*号也可以换成具体的单个或者多个列名字段,就表示查询当前列的数据如下

      SELECT  [列名]  FROM [表名] WHERE [条件]

      SELECT  [列名1],[列名2]  FROM [表名] WHERE [条件]

3:WHERE条件后面跟的语法AND/OR的用法,

     AND表示2个条件都为真结果为真的数据

    SELECT * FROM [表名] WHERE name=’1’AND age=2;(查询名字和年龄都满足条件的数据)

    OR表示或者的意思只要有一个条件为真则结果为真的数据

    SELECT * FROM [表名] WHERE name=’1’OR age=2;(查询只要名字或者年龄任意匹配一个条件的数据)

注意:条件表达式=,>,<,>=,<=都可以,但是这种条件5

执行顺序:AND和OR同时使用时如果没有括号 则AND先执行OR后执行

4:WHRE条件后面跟的语法LIKE %模糊匹配

     LIKE‘e%’模糊匹配以e开头的数据

     LIKE‘%e’模糊匹配以e结尾的数据

     LIKE‘%e%’模糊匹配任何位置包含e的数据

     LIKE‘%e%k’模糊匹配任何位置包含e但是以K结尾的数据

     LIKE‘k%e%’模糊匹配任何位置包含e但是以K开头的数据

     LIKE‘e%%k’模糊匹配以e开头,k结尾的数据

5:ORDER BY,DESC ASC对查询结果按照指定规则排序

     ORDER BY [列名1],[列名2]对查询结果按照列名1列名2的规则排序

     ORDER BY [列名1] DESC查询结果按照列名1降序的方式排列

     ORDER BY [列名1] ASC查询结果按照列名1升序的方式排列

如SELECT * FROM tb WHERE age<40 ORDER BY name DESC

6:LIMIT查询结果数量限制 只获取指定数量的结果 分页常用

     LIMIT 1只查询一行数据

     LIMIT 0不返回任何结果,这个在测试数据库查询,但是不实际运行查询是有用的方法

     LIMIT 2,3第一个数字是偏移量 第二个是返回的行数,记住偏移量是下标0开始的哦

     表示:查询从第三条数据开始(包含第三条),的后三条数据 即3 4 5

六:基础命令--DELETE删除

1:DELETE FROME [表名]删除所有数据

2:DELETE FROM [表名] WHERE ...删除指定条件的数据(注意删除指定的某条数据最好使用唯一字段)

3:DROP DATABASES [数据库] 删除数据库

4:DROP TABLE [表名]  删除表

      注意:drop操作立即生效,不能回滚, delete 可以回滚,drop删除后立马释放空间


七:基础命令查询--查询常用函数

1:MAX查询最大值

     SELECT MAX(age) FROM tb;查询age列的最大值

     SELECT MAX(age),MAX(sex) FROM tb;

2:DISTINCT去掉查询结果的重复数据

     有时候查询某些数据会有重复的,需要去掉重复就用次函数

      SELECT DISTINCT (sex) FROM tb;

      SELECT DISTINCT (*) FROM tb;

3:COUNT统计数量

      SELECT COUNT(*) FROM tb;统计有多少条数数据

4:AVG求值/SUM某合/MIN取最小值 用法和上面的都一样

5:日期格式化函数DATE_FORMAT();

        这个函数可以按照一定规则显示不同的日期格式

        比如我们有一个日期1989-09-12 (birthday字段名)

      select  DATE_FORMAT([列名],'%a/%m/%d/%y') from [表名] where id<5;

      %a 表示星期的英文缩写如Fri,Mon,  %w也表示星期是数字表示而已如5,1

       %m 月份数字展示  ,%M月份英文展示

        %d 天(1-31)  %e也是表示天数但是前面不带0, %D也是表示天数是带后缀的如2nd,8th这种

       %y表示年份但是是取后两位,  %Y取四位年份

        对于日期显示格式可以用上面的任意组合而且可以加入(/,-)等来分割日期

6:返回当前日期的函数

      NOW()获取当前系统的年月日时分秒  ,CURRENT_DATE()获取当前的年月日

      select  now();  select current_date();

      MONTH([列名]) 返回当前列的月  ,DAYOFMONTH([列名]) 返回当前列的日

     SELECT  MONTH([列名]) FROM [表名];

你可能感兴趣的:(MySql基本语法(一))