学习记录008-数据库常用命令one
sql语句分类:
dml--数据操纵语句;进行数据的操作,比如数据的删除,数据的添加:insert,delete,update
dcl--数据控制语句;进行权限控制的,比如设置用户特定的访问数据等
ddl(database defined language)--定义表和数据库的,数据定义语句:creat,drop,alter;比如建表和建数据库等,其自带commit
TCL-事务控制语言,比如commit(自动提交)和rollback(回滚)
sql语句的注释:
在进行sql语句的注释,为一个 # 号或者--即为注释;在Mac里面快捷键为:command+?即可
在数据库里面建表的存取数据的类型:
原则:选择合适的数据类型
整形:表示寸数据的类型大小
tinyint
smallint
int:不需要加长度
bigint
浮点型
floot:不需要加长度
double
字符串
char:有定长
varchar:是变长,即使定义,但是存多少还可以变化就是多少大小
text:长文本类型
日期类型
date:年月日
datetime:年月日时分秒
timestamp:时间戳
建表的时候的约束:
1 主键约束:值需要是唯一的,不可为空 primary key
2 外键约束:foreign key
现在有两张表,一张存储学员信息,一张存储学生成绩,这两张表有联系,学生id在学生表里面是主键,那么在学生成绩表里面和学生表有关联的键就为外键
3 唯一约束:字段不能重复但是可以为空 unique
4 非空约束:字段不能为空 not null
5 默认值约束:有一个默认值 default
6 自增长: 每条数据自己自动增长 auto_increment
关于每条sql语句最后的“;”
在写每一条sql语句的时候一般以分号结尾,如果没写且后面没有sql语句的话,那么可以正常执行,那如果没有写分号且后面还有sql语句,那么就会连接执行
sql语句:
1 建数据库
【create database 表的名字 charset utf8;】 添加charset utf8的目的是为了防止中文乱码
2 删除数据库
【drop database 库名字;】
3 在没有可视化工具的情况下,操作切换数据库的命令
【use 库名字;】
4 看当前有哪些数据库
【show DATABASES;】
5 建表:针对表的字段的要求之间要以逗号分隔
CREATE table gdd_stu( id int primary key auto_increment, 字段:id 数据类型为整形 主键约束唯一且不可为空 sex smallint default 0, 字段:sex 数据类型为smallint 默认0为一个类型 name varchar(20) not null, 字段:name 数据类型为字符串 不可为空 phone varchar(11) not null unique, 字段:phone 数据类型为字符串 字段可以为空但是不可重复 addr varchar(30), 字段:addr 数据类型为字符串 key (name) 定义索引:把名字写入括号内,可进行指定索引的查找 ); create table gdd_score( id int primary key auto_increment, 字段:id 数据类型为整形 是这个表的主键唯一且不可为空 score float not null, 字段:score 数据类型为浮点型 不可为空 sid int not null 这是针对这个表的外键,是查找学生表的关联字段 );
6 给表新添字段,添加字段为表最后字段
【alter table gdd_stu add 新加字段名 int not null;】
7 删除表字段
【alter table 表名 drop 字段名;】
8 修改字段的约束
【alter table gdd_stu change name new_name varchar(40) not null;】 change可进行修改字段名字
【alter table gdd_stu modify phone varchar (15);】 modify不可进行字段名字的修改
9 删除表
【drop table 表名;】
10 清空表的数据
【truncate table 表名;】
11 看表结构
【desc 表名;】
12 在没有可视化工具的时候查看表的结构语句是怎么写的
【show create table 表名;】
13 查看当前库里面都有哪些表
【show tables;】
14 insert插入数据的方法
第一种:有多少字段都要写入数据的方法
【insert into gdd_stu values ('',1,'guodengdeng','18611113088','北京');】
第二种:指定插入字段的即可
【insert into gdd_stu (new_name,phone) values ("hanmeimei","18667876786")】
15 在当前数据库下操作copy当前书库库里面的表
【create table 新表名 like 想要copy的表;】
16 copy非当前数据库下的表
【create table 新表名 like 对应数据库.库里的表名;】
17 统一修改字段的数据
【update gdd_stu set addr="上海",name="baibai";】 那么字段addr和name下的所有数据都为上海和baibai
18 指定特定条件进行字段内容的修改
【update gdd_stu set addr="上海",new_name="baibai" where id=2;】
19 删除全部数据
【delete from 表名;】
20 删除表里面特定的数据
【delete from gdd_stul where id=2;】
21 删除表里面数据的方式有两个,一个是20还有一个是10,区别是什么?
假如id自生长,如果使用delete,那么即使数据删除,id会延续之前删除的数据id进行自生长
那如果使用truncate,数据删除就是删除了,下次的id计算就会从 1 开始