Structured Query Language 结构化查询语言
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
创建数据库、创建数据表、向数据表中添加一条条数据信息均需要使用SQL语句。
MySQL密码 123
习惯:关键字大写,定义的数据名小写
创建表的格式()
修改表格中数据的方式
将笔记本的价格和空调的价格全部修改为2000元
UPDATE product SET price = 2000 WHERE id = 1 AND id = 7
表格基本操作代码
/*
创建数据库
create database 数据库名;
*/
CREATE DATABASE mybase;
/*
使用数据库
use 数据库名
*/
USE mybase;
/*
创建数据表的格式
create table 表名(
列名 数据类型 约束,
列名 数据类型 约束,
列名 数据类型 约束
);
创建用户表,用户编号,姓名,用户的地址
将编号列,设置为主键约束,保证列的数据的唯一性,非空性
primary key
让主键列数据,实现自动增长
*/
CREATE TABLE users(
uid INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(20),
uaddress VARCHAR(200)
);
/*
添加列,添加字段
alter table 表名 add 列名 数据类型 约束
*/
ALTER TABLE users ADD tel INT;
/*
修改列,在原有的列上进行修改
修改列名,数据类型约束
alter table 表名 modify 列名 数据类型 约束
*/
ALTER TABLE users MODIFY tel VARCHAR(50);
/*
修改列名
alter table 表名 change 旧列名 新列名 数据类型 约束
*/
ALTER TABLE users CHANGE tel newtel DOUBLE;
/*
删除列
alter table 表名 drop 列名
*/
ALTER TABLE users DROP newtel;
/*
修改表名
rename table 表名 to 新表名
*/
RENAME users to newusers;
CREATE TABLE sort(
sid INT,
sname VARCHAR(100)
);
RENAME TABLE sort to newsort;
/*show tables 显示所有数据表
desc users 查看表中结构
drop table users 删除数据表
*/
SHOW TABLES;
DESC users;
/*
向数据表中添加数据 insert
格式:
insert to 表名(列名1,列名2,列名3) values(值1,值2,值3)
注意:
列名,表名的问题
*/
CREATE TABLE product(
id INT PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(100) NOT NULL,
price DOUBLE
);
INSERT INTO product (id,pname,price) VALUES (1,'笔记本',5555.99);
INSERT INTO product (id,pname,price) VALUES (2,'手机',9999);
/*
添加数据格式,不考虑主键
格式:
insert into 表名 (列名) values (值)
*/
INSERT INTO product (pname,price) VALUES ('洗衣机',899);
/*
因为主键id会自动增长,所以不写也没事
*/
INSERT INTO product VALUES (4,'微波炉',299.99);
/*
这种写法可以省略列名,但是需要把该数据的所有信息填充完,否则报错
*/
INSERT INTO product VALUES (5,'键盘',299.99);
/*
INSERT INTO product VALUES ('鼠标',199.99);
Error Code : 1136
Column count doesn't match value count at row 1
(0 ms taken)
*/
INSERT INTO product (pname,price) VALUES('电视机',1000),('沙发',2000),('热水器',400);
/*通过勾选可以右键删除某行元素,再次加入元素会出现断号的现象,但没什么事儿不用管*/
INSERT INTO product (pname,price) VALUES ('洗衣机',899);
/*
对数据进行更新操作
数据在原有的基础上修改
格式:
update 表名 set 列1=值1,列2=值2 where 条件
*/
-- 手机价格,上调为15999
UPDATE product SET price = 15999 where id=2;
UPDATE product SET pname = '电视机',price=100 WHERE id = 7;
/*
修改条件的写法
id=6
id<>6 id不等于6
id<=6
*/
UPDATE product SET price = 2000 WHERE id = 1 AND id = 7;
-- 一个也没改掉,因为不能用AND,id是不可能同时=1和7的
UPDATE product SET price = 2001 WHERE id in(1,3,7);
-- 这样就可以改数据了
UPDATE product SET price = 2000 WHERE id not in(1,3,7);
/*
删除表中的数据
格式:
delete from 表名 where 条件
drop table 表名 删除整个表格
*/
-- 删除笔记本
DELETE from product where id = 1;
DELETE from product where pname = '洗衣机';
/*
直接将表删除,重建表格,auto_increment将置0,从新开始
truncate table 表名;
*/
SQL语句查询
-- like 模糊查询 配合通配符
-- 查询所有的支出
SELECT * FROM zhangwu WHERE zname LIKE '%支出%'
-- 查询账务名字,五个字符的
SELECT * FROM zhangwu WHERE zname LIKE'_____'
-- 查询账务名,不为空的
SELECT * FROM zhangwu WHERE zname IS NOT NULL
SELECT * FROM zhangwu WHERE NOT ( zname IS NULL)