MySQL 第二篇:增删改查

  1. 云栖社区>
  2. 博客>
  3. 正文

MySQL 第二篇:增删改查

我巴巴 2017-10-26 16:45:06 浏览855
展开阅读全文

我把MySQL的内容整理成9篇博客,学完这9篇博客虽不能说能成为大神,但是应付一般中小企业的开发已经足够了,有疑问或建议的欢迎留言讨论。

一、新增数据

1、语法:insert [into] <表名>[列名] values<值列表>

-- Insert into 表名(列名1,列名2) values(值1,值2,);
INSERT INTO students (s_id, s_name) VALUES  ('J1604025', 'XZG');

注意:

  • 如果insert语句中不写字段名,则默认是向表中的所有字段添加值,并且添加值的数量要和表的字段数对应。
  • 字符串需要以”或者”“来括起。
  • 字段列多值少 会报错 数据库对插入的数据是否有效进行了完整性的校验。
    例:
INSERT INTO students VALUES ( 'J1609004', 'GMCC',   28, 175,    '男');
  • 某个值是字符,对应的字段是数字,则它会自动转换成数字插入。
    例:
INSERT INTO students VALUES ( 'J1609004', 'GMCC', '28', '175',  '男');
  • 要把字符转换成数字,则字符中必须全部是数字形式的字符。
    例:
INSERT INTO students VALUES ( 'J1609004', 'GMCC', '28', '175cm',    '男');

报错:Data truncated for column ‘height’ at row 1

  • 如果字段设置了not null 则给这张表添加数据时该字段必须插入。或者设置default值。
  • 每个数据值的数据类型、精度和小数位数必须与相应的列匹配。

2、讲查询结果插入到一张表中

语法:INSERT [INTO] <表名> [列名] SELECT [源列名] FROM <源表名>;
INSERT INTO 表名 (列名1,列名2) SELECT 源列名1,源列名2 FROM 源表名

  • INSERT INTO 表名[列名] select 列名 from 来源表
INSERT INTO students_bak SELECT * FROM  students;

二、更新数据

语法: UPDATE <表名> set <列名1=更新值1>,<列名2=更新值2> [where 更新条件]

注意:where 子句是判断语句,用来设定条件,限制只更新匹配的行,如果不带where子句,则更新所有行数据。

UPDATE students SET sex = '男', age = 30 WHERE   s_id = 'J1607016';

三、删除数据

1、语法:delete from <表名> [WHERE]

注意:此语句删除表中的行,如果不带where子句,则删除整个表中的记录但是表不被删除。

  • delete from <表名>; 删除表里的所有数据,表结构还在。
  • drop table <表名>; 删除表。表结构不存在。
DELETE  FROM students_bak;--删除整个表的数据
DELETE FROM students_bak WHERE  s_id = 'J16004012' --删除一条数据

2、TRUNCATE不会显示删除的数据行数,不能够做筛选。直接进行整表删除。

TRUNCATE TABLE students_bak 

注意:delete truncate 删除表的数据记录。 drop 是会删除整个表的数据和结构。

四、查询

1、语法:SELECT <列名> FROM <表名> [WHERE <查询表达式>];

1、查询学生的学号(s_id) ,姓名(s_name)

Select s_id,s_name from students;

2、查询表里的所有列

<1>Select * from students; // 用*表示所有列
<2>select s_id,s_name,age,height,sex,class_id,birthday,s_desc from
students; // 把所有列的列举出来

3、给列起别名:select 列名 [as] 别名,列名2 [as] 别名2 from 表名;

Select s_name,s_name as ‘学员姓名’ from students;

4、给表起别名: select 表别名.列名 from 表名 表别名;

mysql> select s.s_id,s.s_name from students s;

补充:MySQL中使用SQL语言几点说明

1、属于一个SQL语句,使用分号(;)结尾,否则mysql认为语句没有输入完。
2、箭头(->)代表SQL语句没有输入完。
3、取消SQL语句使用(\c)。
4、SQL语句关键字和函数名不区分大小写(Linux区分,Windows不区分)。
5、使用函数时,函数名和后面的括号之间不能有空格。

说明:表和字段的引用方式有两种:绝对引用和相对引用

1、绝对引用:数据库名.表名(.字段名)
mysql> select school.students.s_name from school.students;
2、相对引用:表名.(字段名)
mysql> select students.s_name from school.students;

网友评论

登录后评论
0/500
评论
我巴巴
+ 关注