数据库的基本操作

--查看当前电脑有哪些数据库

show DATABASES;

--创建数据库

create database spt2603;

--使用数据库

use spt2603;

--删除数据库

drop DATABASE;

drop DATABASE if sxists test; --报错

--设置数据库的编码格式

alter database spt2603 character set utf8;

--查看数据库中所有的表

show tables;

--数据类型:1:数值类型 2:日期和时间类型 3:字符串类型

--查看指定表的创建语句

show create table stu:

--查看表结构

desc stu

----删除表

drop table stu2

--DDL 2:对表结构的常用操作

use spt2603

create table stu(

id int,

name varchar(10),

age int,

birthday date,

address varchar(20),

score double

);

create table stu2(id int,name varchar(10));

--2.5修改表结构

--2.5.1 添加字段

alter table stu change school newschool verchar(20)

--2.5.2修改类型

alter table stu change school newschool varchar(20)

alter table stu cahnge newschool school INT

--2.5.3删除字段

alter table stu drop school

--2.5.4修改表名

rename table stu to student

--3.1添加字段

alter table stu add school varchar(20)

--3.2修改字段名和字段类型

alter table stu change school newschool varchar(20)

alter table stu change newshcool school INT

--3.3删除字段

alter table stu drop school

--3.4修改表名

rename table stu to student

rename table student to stu1

--DML ()指数据操作语言

--1:插入insert 2:删除delete 3:更新update

--DML 插入方式1

insert into student(id,name,age,birthday,address,score) values(1001,'','2002-2-2','')

insert into student(id)values(1005);

--DML插入方式2

insert into student values(1002,'',22.'2002-2-2','',20)

--DML2:更新数据

--语法2:update 表名 set 字段名=值 字段名=值...

--语法1:update 表名 set 字段名=值 where 条件

--2.1:将所有学生地址都改为太原

update student set address = '',age = 20

--2.2:将id为1005的学生的地址改为太原

update student set address = ''where id =1001

--2.3:讲id 为1007 的学生,地址为杭州,成绩改为100,年龄为16

update student set address = '',socre = 100,age =16 where id =1007

--DML

--语法1:delete from 表名 [where 条件]

--语法2:truncate table 表名或者 truncate 表名

--3.1删除id为1005的学生

delete from student where id = 1005

--3.2删除所有学生

delete from student

--3.3删除所有学生

truncate table student

truncate student

--delete :删除表的内容

--truncate:删除这张表,重新创建同名表 drop table

use spt2603;

create table emp(

id INT,

name varchar(10),

gender varchar(10),

salary double

);

insert into emp(id,name,gender,salary) values(1001,'张三','男',5000),

(1002,'李四','女',6000),

(1003,'王五','男',7000);

update emp set salary = 8000;

update emp set salary = 3000 where name = '张三';

/*

约束:constraint

约束本质就是给数据添加条件

约束的分类:主键约束 (primary key)自增长约束(auto_increment) 非空约束(not null)

唯一约束(unique) 默认约束(default)

*/

--主键约束(primary key)

--1:约束内容字段不能为空 2:约束字段不能重复

use spt2603;

create table if not exists test1(

id int primary key,

name varchar(20),

gender varchar(10)

);

insert into test1 values(1,'','')

insert into test1 values(null,'','')

insert into tste1 values(2,'','')

drop table test1

--添加主题约束第二种方式

create table if not exists test2(

id int,

name varchar(10)

gender varchar(10)

constraint c2 primary key (id)

);

insert into test2 values(1,'','')

insert into test2 values(1,'','')

insert into test2 values(1,'','')

insert into test2 values(null,'','')

--删除主键

alter table test1 drop primary key --改变表,只要有主键,不管是单主键还是多主键

zlter table test5 drop primary key

--主键约束之联合约束

create table if not exists test3(

id int,

name varchar(10),

gender varchaar(10),

primary key(id,name)

);

desc test3

insert into test3 values(1,'','')

insert into test3 values(1,'','')

insert into test3 values(1,'','')

insert into test3 values(null,'','')

drop table test3

--通过改变表结构添加联合主键

create table if not exists test5(

id int,

name VARCHAR(10),

gender varchar(10),

);

alter table test5 add primary (id)

desc test5

--自增长约束(auto_increment)当主键定义为自增长后,这个主键的值就不需要用户输入数据,数据库会自动赋值

--字段名 数据类型 auto_increment

create table user1(

id int primary key auto_increment,

name varchar(10)

)

insert into user1 values (null,'')

insert into user1 values (1,'')

delete from user1 --删除内容,约束依然存在

truncate user1

--指定自增长的初始值

create table user2(

id int primary key auto_increment,

name varchar(10)

)auto_increment = 100

insert into user2 values (null,'')

insert into user2 values (1,'')

--指定自增长:先创建表然后在设置自增长

create table user3(

id int primary key auto_increment,

name varchar(10)

)

alter table user3 zuto_increment = 1

insert into user3 values (null,'')

insert into user3 values (1,'')

drop table user3

--非空约束()就是字段的值不能为空,如果指定为非空约束,用户没有传值,那么报错

create table user4(

id int primary key,

name varchar(10) not null,

address varchar(10)not null

)

insert into user4 values(1,'null','null')

insert into user4 values (1,null,null)

insert into user4 values (1,'','')

insert into user4(id) values(1)

create table user5(

id int ,

name varchar(10),

address varchar(10)

)

--第二中添加非空约束

--alter table 表名 modify 字段 类型 not null

alter table user5 modify name varchar(10) not null;

alter table user5 modify address varchar(110) not null;

insert into user5(id) vales(1)

--删除非空约束

alter table user5 modify name varchar(10) ;

alter table user5 modify address varchar(110);

insert into user5(id) vales(1)

--唯一约束:所有表中的数据都不能重复出现

create table user6(

id int ,

name varchar(10)unique,

address varchar(10)

)

insert into user6 values(1,'张三','山西')

insert into user6 values (1,null,'山西')

insert into user6 values (1,'张三','山西')

insert into user6 values(2,null,'山西')

create table user7(

id int ,

name varchar(10),

address varchar(10)

)

alter table user7 add constraint uni_name unique(name)

insert into user7 values(1,'张三','山西')

insert into user7 values (1,null,'山西')

insert into user7 values (2,'张三','山西')

insert into user7 values(2,null,'山西')

--删除唯一约束

alter table user7 drop index UNI_NAME

--默认约束

create table user8(

id int ,

name varchar(10),

address varchar(10)default '地球'

)

--格式1:<字段名><数据类型>default<默认值>

insert into user8 values(1,'张三',null)

inser into user8(id,name) values(1,'张三')

drop table user8

create table user9(

id int ,

name varchar(10),

address varchar(10)

)

alter table user9 modify address varchar(10) default '杭州'

insert into user9(id,name) values(1,'张三')

--删除默认约束

alter table user9 modify address varchar(10)

insert into user9(id,name)values(1,'张三')

drop table user9

相关推荐
cyber_两只龙宝1 小时前
【Oracle】Oracle之使用DML语言管理表
linux·运维·服务器·数据库·云原生·oracle
电商API_180079052472 小时前
获取淘宝商品原价、券后价的区别在哪里?难度以及解决办法
数据库·性能优化·数据挖掘·数据分析·网络爬虫
qq_372906932 小时前
怎么通过宝塔面板对网站数据库进行深度碎片整理_使用Optimize命令优化表空间资源占用
jvm·数据库·python
窥视未来2 小时前
MySQL 性能调优完全指南:从硬件到 SQL,一篇吃透
java·数据库
難釋懷2 小时前
Redis数据结构-Dict
数据结构·数据库·redis
阿丰资源2 小时前
基于SpringBoot+MySQL的校园管理系统设计与实现(源码+文档+数据库,直接运行)
数据库·spring boot·mysql
XS0301062 小时前
Java 基础(十)异常
java·开发语言·oracle
Irene19912 小时前
(课堂笔记)Oracle 表关联:连接类型、数据发散、自关联、同环比计算
oracle·连接