数据库整理

1:法:创建数据库create database db1 charset utf8;数据库命名规则:字母数字下划线 @ # $区分大小写唯一性不能使用关键字

2:数据库相关操作:查看数据库:show databasesshow create database db1select database();

3:选择数据库名use db1

4:删除数据库:drop database db1

5 修改数据库alter  database db1 charset utf8

二 表创建表create table db1(    id int perimary_key,    name varchar(255),    )

改表alter table db1 modify name char(16),

查看show tables查看表的详细信息show create table db1;

查看表结构desc db1

删表drop table db1

w文件的一行内容增:insert into db1.t1 values                (1,‘egon‘),                (2,"alex")                (3,"lxx")

修改表名:alter table 旧表名  rename 新表名;增加字段;alter table  表名 add 字段名 数据类型【完整性约束条件}删除字段   alter table  表名 drop 字段名

数据类型整型:1:作用id号,各种号码, 年龄 等级

浮点型作用:存储身高体重 薪资相同点:对于三者来说, 都能存放30位小数不同点精度的顺序从低到高:float  double  decimalfloat与 double类型能存放的整数位比decimal更多

整型1:作用:姓名 地址 描述类的信息

2:分类:char    定长varchar  变长

对比:char:优点:存取速度快缺点:浪费空间

varchar:优点:节省空间缺点:节省空间

日期类型:date:1999-01-27time :11:11:11datetime:1999-01-27 11:11:11year:1999

枚举类型与集合类型:enum:单选 只能在给定的范围内选一个值 如 sex 性别,只能选男女set:对选,可以选择多个值   如何:爱好 可以有多个爱好

三: 完整性not null 与 default是否可空  null  表示空 非字符串not null不可空null 可空

default   默认值 创建列时可以指定默认值

unique  设置唯一约束

primary key 主键 不为空且唯一

auto-increment:约束字段为自动增长 被约束的字段必须同时被key 约束

foreign key   外键:foreign key(press_id) references press(id)

多对一:关联方式 foregin key

多对多: 关联方式 foreign key  + 一张新的表

一对一  foreign key + unique

四:单表查询语法:select distinct 查询字段1 查询字段2 。。。。 from 表名            where 分组之前的过滤条件            group by 分组 依据            having 分组之后的过滤条件            order by  排序字段            limit 显示的条数

五 多表查询

内连接:把两张表有对应关系的记录链接成一张虚拟表select * from t1 inner join t2 on t1.t2_id =t2.id

左练级:在内连接的基础上保留左边没有对应关系的记录select * from t1 left join t2 on t1.t2_id=t2.id

右链接:在内连接的基础上保留右边没有对应关系的记录select * from  t1 right join t2 on t1.t2_id=t2.id

全连接:在内连接的基础上 保留左右边没有对应关系的记录select* from t1 join t2 on t1.t2_id=t2.idunionselect * from right join t2 on t1.t2_id=t2.id;

六  子查询吧一个查询语句用括号括起来,当做另外 一条查询语句的条件去用,称为子查询:select t1.name from t1 inner join t2 on t1.t2_id=t2.id where t2.name="技术":

七:创建视图视图就是通过查询得到一张虚拟表, 然后保存下来 下次可以直接使用这样可以不用重复查询。

语法:create view teacher_view as select tid from teacher where tanme="李萍老师"于是查李萍老师教授的课程名sql 可以改为:create view teacher2course asselect * from teacher inner join course    on teacher.tid = course.teacher_id;

强调:在硬盘中,视图自由表结构文件, 没有表数据文件视图用处用于插叙 尽量不要修改视图中的数据、删除: drop viewteacher2course

八:触发器:1:在满足对某张表数据的增删改的情况下 自动触发的功能称之为触发器2:触发器专门针对我们对某一涨表数据增 insert 删delete 改update 的行为 这类行为一旦执行就会触发触发器的执行, 即自动运行另外一段sql代码

3:针对插入create trigger tri_after_insert_t1 after  insert on 表名 for  each rowbegin    sql代码end

针对删除create trigger tri_after_delete_t1 after delete on 表名 for each rowbegin    sql 代码。。end

针对修改create trigger tri_after_update_t1 after update on 表名 for each rowbegin    sql代码。。。end

04 案例CREATE TABLE cmd (    id INT PRIMARY KEY auto_increment,    USER CHAR (32),    priv CHAR (10),    cmd CHAR (64),    sub_time datetime, #提交时间    success enum (‘yes‘, ‘no‘) #0代表执行失败);

CREATE TABLE errlog (    id INT PRIMARY KEY auto_increment,    err_cmd CHAR (64),    err_time datetime);

delimiter $$create trigger tri_after_insert_cmd after insert on cmd for each rowbegin    if NEW.success = ‘no‘ then        insert into errlog(err_cmd,err_time) values(NEW.cmd,NEW.sub_time);    end if;end $$delimiter ;

drop trigger tri_after_insert_cmd;

九:事务01 什么是事务    开启一个事务可以包含一些sql语句,这些sql语句要么同时成功    要么一个都别想成功,称之为事务的原子性

02 事务的作用

03 如何用create table user(id int primary key auto_increment,name char(32),balance int);

insert into user(name,balance)values(‘wsb‘,1000),(‘egon‘,1000),(‘ysb‘,1000);

try:    update user set balance=900 where name=‘wsb‘; #买支付100元    update user set balance=1010 where name=‘egon‘; #中介拿走10元    update user set balance=1090 where name=‘ysb‘; #卖家拿到90元except 异常:    rollback;else:    commit;

原文地址:https://www.cnblogs.com/lx3822/p/9163794.html

时间: 2024-10-20 20:53:53

数据库整理的相关文章

Oracle 数据库整理表碎片

Oracle 数据库整理表碎片 转载:http://kyle.xlau.org/posts/table-fragmentation.html 表碎片的来源 当针对一个表的删除操作很多时,表会产生大量碎片.删除操作释放的空间不会被插入操作立即重用,甚至永远也不会被重用. 怎样确定是否有表碎片 -- 收集表统计信息 SQL> exec dbms_stats.gather_table_stats(ownname=>'SCHEMA_NAME',tabname=> 'TABLE_NAME'); -

SCOM 2012知识分享-19:配置数据库整理设置

适应平台:System Center 2012 RTM/SP1 ------------------------------------------------------------------------------------------------------ 整理进程从 Operations Manager 数据库中删除无用的数据,以通过管理数据库大小来维护性能. 它将删除无用的记录. 你可以配置以下记录类型的整理设置: 解决的警报 事件数据 性能数据 任务历史记录 监视作业数据 状态

SCOM数据库整理索引计划出错

我们为了提高数据库的访问效率,我们需要对数据库做优化,那么在这里我是希望对我的SCOM的SQL进行索引的整理. 当我们在SQL的维护计划中创建了针对SCOM数据库进行重新组织索引的计划后,发现运行总是会失败,这是为什么呢? 发现报错是这样的: 执行查询"ALTER INDEX [PK__EventSta__95632343A552DFB0] ON [E..."失败,错误如下:"找不到索引 'PK__EventSta__95632343A552DFB0'.".失败的原

数据库整理一

1.注释语法:--,#2.后缀是.sql的文件是数据库查询文件3.在数据库里面 列叫字段 行叫记录 CRUD操作:create 创建(添加)read 读取update 修改delete 删除 1.添加数据 insert into 表名 values(值) insert into 表名(字段1,字段2) values(字段1值,字段2值) 2.删除数据删除所有数据delete * from family删除特定的数据 delete info from 表名 where 条件 3.修改数据updat

笔记之_Java数据库整理

sqlserver复制表结构:并删除数据: select T.* into TABLE_ORDER_CANCEL from TABLE_ORDER T TRUNCATE TABLE TABLE_ORDER_CANCEL Count(*)后不能排序 数据库的四个特性: 原子性.一致性.隔离性.持久性 事务隔离级别: 脏读 不可重复读 幻读 Read uncommitted √ √ √ Read committed × √ √ Repeatable read × × √ Serializable ×

数据库整理——高级查询

# 注释-- 注释 -- 高级查询-- 连接查询SELECT t1.`Name`,t2.Brand_Name FROM brand t2,car t1 -- 笛卡尔乘积WHERE t2.Brand_Code = t1.Brand-- 多表连接查询SELECT t1.`Name`,t2.Brand_Name,t3.prod_name FROM car t1 LEFT JOIN brand t2 ON t1.Brand = t2.Brand_Code LEFT JOIN productor t3 O

smarty 数据库整理

获取栏目的class信息 bname btitle public function user_getclassinfo($classid) { $query = "select c1.classurl,c1.filetype,c2.cnavname,c2.cnavurl,c1.classimg,c1.intro,c1.bname,c1.classpagekey,c1.classname,c1.sonclass from kk_enewsclass as c1,kk_enewsclassadd a

数据库整理(行的查)

行的查操作 select distinct 字段 from 库名.表名 where group by 1 行的查操作 1.1 单表查询 select distinct 字段 from 库名.表名 where 条件语句 group by 分组 having 过滤 order by 排序 limit 限制条数 先执行where,再group by分组,having过滤,根据select的字段选择需要显示的字段,distinct去重,order by 排序,limit限制显示的条数 Distinct

数据库整理(索引)

2 索引使用树形结构提高查询速度的操作叶子节点上:数据大小小,且区分度高聚集索引:即主键索引:叶子节点存在id,关联着对应数据(主键)where ... 只能在主键的时候明显提高检索速度 只能给一个字段加主键,如果在where中不使用该字段,则索引无效 添加主键的方式即为添加主键索引的方式 辅助索引:在建立树形结构的时候,叶子节点中存的是列数据+id.获取列之后,在根据对应的id去找(使用聚集索引的模式) 这样的话,数据在叶子占用空间少, 唯一索引:unique 创建:是直接在字段后加uniqu