数据库基本操做的了解和巩固练习(一)

数据库的基本操做

简介:

数据库:持久化(保存)数据的工具
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)

1.DDL:数据库定义语言

1.1DDL语句用于创建,修改,删除数据库对象
-- 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;
1.2 DML语句:数据操纵语言

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;
1.3 DQL语句:数据查询语句
-- *:表示全部字段。若要显示指定的字段,则可将*用字段名代替,多个字段名用逗号隔开 
-- 查询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;

本期分享结束,后面的语言等待更新… ,有问题的欢迎评论交流,谢谢你们的观看。对象