数据库:持久化(保存)数据的工具
SQL:Structured Query Language结构化的查询语言
在数据库中名称大小写不敏感,建立到数据库中都会变成大写web
知识点比较细,看的时候须要耐心,看到最后可能对你会有一点帮助…数据库
DDL(数据库定义语言) | 表的建立,修改(表结构)(data definition language) |
---|---|
DML(数据库操做语言) | 表数据的增长,删除,修改(Data Manipulation Language) |
DQL(数据查询语言) | 数据库的查询(data query language) |
TCL(事物控制语言) | 处理数据库中的事务(Transaction Control Language) |
DCL(数据控制语言) | 是用来设置或更改数据库用户或角色权限的语句grant,deny,revoke(Data Control Language) |
-- MySQL:不区分大小写,官方建议使用大写,开发的习惯通常小写 -- 建立数据库:create database 数据库名; -- 建立学生数据库 create database students; create database students charset utf8; CREATE DATABASE IF NOT EXISTS mydb DEFAULT CHARSET utf8; -- 删除数据库:DROP DATABASE 数据库名; drop database students; -- 查看students下全部的表 show tables; -- 建立表: -- 格式: -- create table 表名( 字段名1 数据类型1, 字段名2 数据类型2 .... ); -- 数据类型:参照Java的数据类型 -- 整数 -- int -- bigint 好比类型int[M],M表示该int类型的大展现宽度。大展现宽度为 255。展现宽度和该类型数字能表示的取值范围是没有关系的 -- tinyint 1字节 -- smallint 2字节 -- mediumint 3字节 -- int 4字节 -- bigint 8字节 -- 字符串 -- char -- varchar -- char:定长字符串。如:char(20)表示该字段固定长度为20,若是字符串的长度不够20,会用空 字符填充。大长度为2000 -- 所以char类型通常用于长度肯定的数据列(好比:手机号,性别,身份证号等)。 -- varchar:变长字符串。如varchar(20)表示该字段的大长度为20,存入多少个字符,长度就 为几。大长度为4000 -- 所以从存储角度来讲varchar更节省空间,效率实际低于char;所以varchar通常用于长度 不肯定的字符串列 -- text(65535)和longtxt(2(32)-1) 适合长文本 -- 小数 -- float -- double -- decimal -- float 4字节浮点型,例如double(5,2)表示多5位,其中必须有2位小数,即大值为999.99; -- double 8字节浮点型,例如double(5,2)表示多5位,其中必须有2位小数,即大值为999.99; -- 泛型型 decimal(m,d),m<65,d<m且d<30 在表金钱方面使用该类型,由于不会出现精度缺失问题; -- 日期 -- date:日期类型,格式为:yyyy-MM-dd;(3字节) -- time:时间类型,格式为:hh:mm:ss(3字节) -- timestamp:时间戳类型 yyy-MM-dd hh:mm:ss(4字节) -- datetime:日期时间 yyyy-MM-dd hh:mm:ss(8字节) -- ENGINE 设置存储引擎,CHARSET 设置编码。 use students; -- DDL(数据定义语言):表的建立,修改(表结构) -- 建立学生表(学号,姓名,分数) create table students(id int,name varchar(40),score ouble ); -- 查看表结构(不是DDL语句) desc students; -- 在表中添加列:alter table 表名 add(字段名 字段的数据类型); alter table students add(`describe` varchar(200)); -- 给学生表添加性别,电话的字段 alter table students add(sex char(1),tel char(11)); -- 删除表中的列:alter table 表名 drop 字段 -- 删除学生表中的`describe`字段 alter table students drop `describe`; -- 删除多列 alter table students drop sex,drop tel; alter table students drop column sex,drop column tel; -- 修改表中的字段名称:alter table 表名 change 原字段名称 新字段名称 数据类型; -- 修改学生表中的tel字段为telephone alter table students change tel telephone char(11); -- 修改表中的字段数据类型:alter table 表名 modify 字段 字段数据类型; -- 修改学生表中的telephone字段的数据类型为int(11) alter table students modify telephone int(11); -- 修改表名 -- alter table 原表 rename to 新表; -- rename table 原表 to 新表; -- 把students表修改成stus表 alter table students rename to stus; -- 把stus表修改成students表 rename table stus to students; -- 删除表:drop table 表名; -- 删除学生表 drop table students;
DML:Data Manipulation Language数据操做语言:表数据的增长,删除,修改svg
先建立一个students表: -- 建立学生表(学号,姓名,分数) create table students(id int,name varchar(40),score double ); -- students表如上: -- 插入表数据: -- insert into 表名(字段名1,字段名2...) values(字段1值,字段2值); -- 向students表插入一条数据 insert into students(id,name,score) value(1,'甜甜',98); -- 若是是字符类型,值须要加单 引号(推荐) -- 一次插入多条数据 insert into students(id,name,score) values(1,'甜甜',98),(2,"诚诚",6); -- 若是前面括号中的字段顺序调换,只要后面的值对应起来便可 insert into students(name,score,id) values('灼灼',100,3); -- 若是表中全部的字段都须要插入数据,此时values前面的括号内容能够省略,可是value(values)后面 的括号中的值必定要按照数据库中的顺序填写 insert into students value(4,'湛湛',59); -- 插入部分字段的数据 insert into students(name,score) value('攀哥',0); -- 删除表中的数据:delete from 表名; delete from students; -- 删除表中全部的数据 -- 修改表中的数据:update 表名 set 字段1名=值,字段2名=值 update students set name='蜡笔小新'; -- 指定修改某一个数据:where -- 修改name='蜡笔小新'的分数为99分 update students set score=99 where name ='蜡笔小新'; -- 修改id为2的学生分数为199分 update students set score=199 where id=2; select * from student; -- 对students表加一列电话telephone alter table students add(telephone varchar(7)); -- 插入数据 insert into students(id,name,score,telephone) values(3,'张三丰',77,'1504333'); insert into students(id,name,score,telephone) values(9,'郭靖',98,'1504333'); insert into students(id,name,score,telephone) values(11,'张无忌',63,'1504333'); -- 查看学生表中的全部数据 select * from students;
-- *:表示全部字段。若要显示指定的字段,则可将*用字段名代替,多个字段名用逗号隔开 -- 查询stu表的全部字段 select * from students; -- 只查询name和score字段 select name,score from students; -- 别名as:用于查询给字段或者表起别名,别名只在当前此次查询有效(as能够省略不写) select name as 姓名,score 分数 from students; -- where关键字 -- 查询id为5的学生状况 select * from students where id=5; -- 查询分数>80的学生信息 select * from students where score > 80;
1.4 巩固小练习(一)工具
– 建立一个员工表包含:工号(int),姓名(varchar),性别(char),职位(varchar),月薪(double(m,n)); 要求完成如下功能:
– 添加一个入职时间列
– 修改姓名name为ename
– 删除性别列编码
-- 建立一个员工(staff)表 create table Staff( id int, name varchar(20), sex char(5), job varchar(20), money double(7,2) ); desc staff; -- 添加一个入职时间列 alter table staff add(date char(12)); -- 修改姓名name为ename alter table staff change name ename varchar(20); -- 删除性别列 alter table staff drop sex;
巩固小练习(二)code
– 1建立一个商品表包含:商品id,名称,单价,库存量,销量,上架时间,要求完成如下功能:
– 向表中添加4条数据
– 修改指定id商品的单价
– 修改指定id商品的库存和销量
– 查询全部的商品信息
– 删除库存量为0的商品xml
create table shop( id int,-- 商品id name varchar(30),-- 名称 price char(5), -- 单价 stock varchar(50),-- 库存量 sale char(30),-- 销量 shoptime varchar(15) -- 上架时间 ); -- 向表中添加4条数据 insert into shop(id,name,price,stock,sale,shoptime) values(1,'旺旺饼干',3,50,20,20200102),(2,'牛奶',4,50,20,20200102),(3,'瓜子',5,50,20,20200102),(4,'红牛',6,50,20,20200102); insert into shop (id,name,price,stock,sale,shoptime) values(5,'辣条',2,0,20,20200102); -- 修改指定id商品的单价 update shop set price = 2 where id = 1; -- 修改指定id商品的库存和销量 update shop set stock = 40,sale = 15 where id = 3; -- 查询全部的商品信息 select * from shop; -- 删除库存量为0的商品 delete from shop where stock = 0;
本期分享结束,后面的语言等待更新… ,有问题的欢迎评论交流,谢谢你们的观看。对象