通过可视化工具建库建表
- 创建数据库
CREATE DATABASE studb2 CHAR SET utf8;
- 切换数据库(使用use 将数据库切换到 studb2)
USE studb2 ;
- 在studb2 中创建名为t_stu的表
CREATE TABLE t_stu
(
sid VARCHAR(10) ,
sname VARCHAR(20),
age INT,
height FLOAT ,
weight DOUBLE
)CHAR SET utf8;
MySQL中的增删改查语句
mysql中表示注释的方法
单行注释:-- ,# 注意–后面要有空格;
多行注释:/**/
一、增加数据
1.插入一整行数据
INSERT INTO t_stu(sid,sname,age,height,weight) VALUES('s003','段誉',18,173,70);
如果是对表中所有的列插入数据,则列名可以省略(掌握)
INSERT INTO t_stu VALUES('s004','王语嫣',18,160,50);
2.对表中指定列插入数据(其它值为null)
INSERT INTO t_stu(sid,sname) VALUES('s005','马夫人');
注意:如果 sid ,sname 和values中的值数量无法对应,则会报错Column count doesn’t match value count at row 1 列的数量和values的数量不匹配
3.单次插入多行数据
方式一
INSERT INTO t_stu VALUES('s006','阿朱',19,170,51),('s007','木婉清',18,165,49),('s008','秦红棉',19,160,48);
方式二
INSERT INTO t_stu
SELECT 's009','赵钱孙',48,160,70
UNION
SELECT 's010','铁面判官',49,165,75;
二、修改数据
update 表示修改记录。
where表示筛选子句。
UPDATE t_stu SET age = 30 , height=160 WHERE sid='s005';
三、删除数据
使用delete来删除记录(一行一行的删除)
DELETE FROM t_stu WHERE sid='s999';
truncate 截断表 (相当于格式化磁盘)
TRUNCATE TABLE t_stu ;
四、查询数据
select表示查询
- 查询所有的列
SELECT sid , sname , age , height , weight FROM t_stu ;
-- 如果查询所有的列,那么可以简写成 *
SELECT * FROM t_stu ;
- 查询指定的列
SELECT sname ,sid , age FROM t_stu ;
- 使用as 可以给表头起别名,as可以省略。
SELECT sid AS '学号' , sname AS '姓名' , age AS '年龄' , height '身高' , weight '体重' FROM t_stu;
- 列也可以用于运算。
SELECT sid , age , age-2 AS '年龄' FROM t_stu ;
- select 查询中也可以带where语句,表示查询后筛选
-- 查询身高超过170的所有人的学号、姓名、身高以及年龄
SELECT sid , sname , height , age FROM t_stu WHERE height > 170 ;
- and表示并且
-- 查询身高超过170并且年龄超过18岁的所有人的学号、姓名、身高以及年龄
SELECT sid , sname , height , age FROM t_stu WHERE height > 170 AND age > 18 ;
- or表示或者
-- 查询身高超过170或者年龄超过18岁的所有人的学号、姓名、身高以及年龄
SELECT sid , sname , height , age FROM t_stu WHERE height > 170 OR age > 18 ;
- not 表示否定,in表示在某个范围内,not in表示不在某个范围内
SELECT * FROM t_stu WHERE age IN (18,19,20)
SELECT * FROM t_stu WHERE age NOT IN (18,19,20)
- like 表示模糊查询。
-- % 匹配0-n个任意字符
-- 以'段'开头的
SELECT * FROM t_stu WHERE sname LIKE '段%';
-- 以'段'结尾
SELECT * FROM t_stu WHERE sname LIKE '%段';
-- _匹配一个任意字符
SELECT * FROM t_stu WHERE sname LIKE '段_';