Create
插入
语法:
INSERT [INTO] table_name [(column [, column] ...)] VALUES (value_list) [, (value_list)] ...
value_list: value, [, value] ...
注意:MySQL 语法不区分单双引号,不区分大小写。
忽略 [(column [, column] ...)]:全列插入。
()values():像一个扁担,左边和右边对应。其中前一个括号指明要插入的列,后一个括号填写对应的元素。如果前一个括号忽略则默认为全列插入。
可同时插入多条,即 ()values(),(),()...... into 也可省略。
示例:
mysql> create table test8( -> id int primary key auto_increment, -> name varchar(20) -> ); Query OK, 0 rows affected (0.02 sec)
mysql> insert into test8 (id,name)values(20250031,'张三'); Query OK, 1 row affected (0.01 sec)
mysql> insert test8 (name)values('李四'); Query OK, 1 row affected (0.01 sec)
mysql> insert test8 values(20250045,'王五'); Query OK, 1 row affected (0.00 sec)
mysql> insert test8 (name)values('赵六'),('田七'); Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql>
替换
语法
INSERT ... ON DUPLICATE KEY UPDATE column = value [, column = value] ...
通常用来解决由于主键或者唯一键对应的值已经存在而导致插入失败的问题。即对数据进行更新。
如下我们插入已存在主键的值:
mysql> insert into values(20250031,'李华'); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'values(20250031,'李华')' at line 1
mysql> insert into test8 values(20250031,'李华') on duplicate key update name='李华'; Query OK, 2 rows affected (0.00 sec)
mysql>
方法二:
mysql> replace into test8 values(20250031,'小明'); Query OK, 2 rows affected (0.00 sec)
Retrieve(读取)
select(确定列)
语法:
SELECT column1, column2, ... FROM table_name [WHERE condition] [GROUP BY column_name] [HAVING condition] [ORDER BY column_name [ASC|DESC]] [LIMIT offset, count];
全列查询:select * from 表名(建议不要使用)。
去重:select distinct 列名 from 表名
显示时对列重命名:列名 as 新列名。as 可省略。
其次可对列进行运算然后显示。
where 条件(确定行)
语法:
SELECT 列名 1, 列名 2, ... FROM 表名 WHERE 条件表达式;
注意:NULL 和 0 不一样。
NULL=NULL 结果还是 NULL,因为 NULL 不可以用=比较,而是用<=>。通常用 is null,is not null。
示例:


