一、数据处理准备
1 导入数据后,鼠标停留在tables下的项目中,选择最后一个图标可以显示这张表的所有数据,可以在此直接修改数据
2 显示所有数据库并选择想要的数据库
show databases
use sql_invoicing
3 若需要自己创建数据库,如果直接create database xinshuju,当数据库已经存在会报错
create database if not exists xinshuju
若不需要这个数据库了需要将其删除,类似若直接删除当数据库不存在时会报错
drop database if exists xinshuju
4 数据类型,主要应用于表格的各列中,常用类型如下
5 创建完数据库后,需要对数据库中的数据进行创建
增:
CREATE TABLE xinshuju(
name text
age int
gender varchar(10)
)
查看表的结构 DESC xinshuju
删:DROP xinshuju
改:(1)增加列:ALTER TABLE xinshuju ADD (city varchar(10))
(2)删除列:ALTER TABLE xinshuju DROP city
(3)修改表名:ALTER TABLE xinshuju RENAME TO stu
(4)修改列名:ALTER TABLE xinshuju CHANGE gender sex CHAR(2)
(5)修改列的数据类型:ALTER TABLE xinshuju MODIFY gender CHAR(2)
二、数据处理
1 数据修改
(1) 插入一行数据:INSERT INTO xinshuju(name,age,gender) VALUES ('lu','18','male')
插入多行数据:INSERT INTO xinshuju(name,age,gender) VALUES ('lu','18','male'),('li','19','famale'),('liu','18','male'),
(2) 修改数据:UPDATE xinshuju SET name='wang',age='19' , gender='male' where name='YI'
(3) 删除单行数据:delete from xinshuju where name='YI'
删除所有数据:DELETE FROM xinshuju 或者是 TRUNCATE TABLE xinshuju(效率高!)
2 数据查询
select 列名-----from 表名-------where 行条件-------group by 对结果分组---------having 分组后行条件------order by 排序列-----limit 起始行,行数
1 where 后可以使用以下运算符:大于小于等于等组合符号、IS NULL、IS NOT NULL、IN、 NOT IN、AND 、OR、BETWEEN AND、LIKE
注意:模糊查询LIKE,%表示0或多个字符,_表示任意单个字符
2 数据去重:SELECT DISTINCT consumer_id from consumers
3 将NULL值转变为0,IFNULL(gender,0)将gender列中的NULL 值转变为0
4 WHERE是对分组前的约束,group by 后边不能再用WHERE而是用HAVING,对分组后的数据进行约束
5 LIMIT限制查询的起始行和总行数,SELECT* FROM name limit 0,5,从第一行开始查询5行数据
6 多表查询:
内连接:只选出两张表中相互匹配的记录,如第一张表中name列wang、lu、li、yi,第二张表name列li、yi、zhang、jin,内连接结果只会显示name为li 和yi的数据
SELECT staff.name, department
FROM staff,deptno
WHERE staff.name=deptno.name
外连接分为左连接和右连接,显示左边表中所有记录,右边表匹配的显示NULL,以下为左连接,右连接与其类似,不作赘述
SELECT staff.name, department
FROM staff
LEFT JOIN deptno
ON staff.name=deptno.name