码迷,mamicode.com
首页 > 数据库 > 详细

mysql基本操作——转自http://www.cnblogs.com/hellokitty1/p/4189608.html

时间:2018-05-31 21:07:25      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:数据一致性   student   建表   关系数据库   基本操作   编号   区别   字符   modify   

数据库:                               第一章
                      关系型数据库管理系统简介

一:使用数据库的特点:1:可以降低储存数据的冗余度  2:提供更高的数据一致性  3:储存数据可以共享  4:便于维护数据的完整性         5:实现数据的安全性 
二:数据模型: 层次模型  网状模型  关系模型 对象模型
三:表   是关系数据库的核心单元,他是数据储存的地方。
四:表之间的关系类型:  一对一关系    一对多关系  多对多关系 

SQL语句分为:

数据定义语言:(DDL)
数据查询语言:(DQL)
数据操作语言:(DML)
数据控制语言:(DCL)
 
第二章   管理数据库和表

接着第二天的继续:
 修改表:
(create table student)
 复制一张表: create table copy-student select * from student  where 1=1;(同时复制表中的数据)
                       create table copy-student select * from student  where 1=0;(复制表结构 不复制数据)
添加一列:alter table student add  student_name varchar(20);
删除列:alter table student drop student_nama;
修改列:alter table student modify student_name varchar(20);   (modeify 修改 只能修改列的数据类型) 
             alter table student change student_name student_name varchar(20);     (change 修改  可以修改列名和数据类型  change后两
                                                                                                                                                     个列名 第一个是老列名 第二个新列名  )
创建一个索引:create index idx_mingzi on student(student_name);
删除索引:alter table student drop index idx_mingzi;
查看表结构:describe student;
视图:select * from  student; 
创建视图:create view my_info as select student_name,student_ii;
         select * from  my_info;
删除视图:drop view my_info;

第三章   保证数据完整性

3.1 数据完整性的概述:实体完整性  域完整性  引用完整性  用户自定义完整性
3.2 数据完整性的实现
  3.2.1 创建非空约束  (在定义列后加上  not null )默认为 null
  3.2.2 创建主键约束-- primary key   主键列不允许储存null值。
  3.2.3 设置唯一约束   unique
  3.2.4 设置默认值  default

  3.2.5 设置检查约束(MySQL不支持)

创建表:student
3.2.6 使用自动编号列:auto_increment  
1: 改变自动增长值:
 alter table  student  auto_increment=1000;
2:添加主键约束 ,唯一约束,默认约束,自动增长(自动增长只能用在主键上),都用 change
alter table student  change  id id primary key ;
alter table student  chang gender gender varchar(4) unique;
alter table student  change name name varchar(20) default "张三";
alter table student  change id id int primary key  auto_increment; 

3:删除主键约束,唯一约束(删除唯一约束的时候  实际上是删除索引),默认约束,外键约束 ,都用drop 

alter table student drop primary key;
alter table student drop index gender;
alter table student drop name name varchar(20);
alter table student drop primary key fk_name;

4:添加外键约束用add。

5:contraint   约束 ; references 引用 ; foreign key 外键 ;default 默认;unique 唯一;auto_increment 自动增长;
 
第四章  使用DML语句更改数据
     本章目标   使用insert语句添加数据   使用update语句修改数据   使用delete语句删除数据
4.1 添加新数据
4.1.1 插入单行记录:
                   insert into <表名> (列名列表)values (<值列表>)
  或者       insert  into <表名> values (<值列表>)    -- 简写

4.1.2 插入多行记录 :
      insert into <表名> (<列名列表>) values (<值列表>),(<值列表>),。。。。;
或者   insert  into <表名> values (<值列表>);
          insert  into <表名> values (<值列表>);
          insert  into <表名> values (<值列表>);

4.1.3 数据表的复制 
      1: 以创建新表的复制形式
create table student_bak1 select * from student;
   2:复制数据
create table student_bak2(
pk_id int primary key auto_increment,
name varchar(20) not null,
age int ,
gender char(3)  default "男",
birthday date,
phoneNo char(12)
);
insert into student_bak2_select * from student; 

4.2 更改已有数据

update <表名> set <新列植列表> where <过滤条件>;
4.3 删除数据 
delete from <表名> where <过滤条件>;
 
删除 student_bak2的所有信息
delete from  student_bak2;  -- delete 语句删除会记录日志 删完数据以后 自动增长依然继续递增
truncate table student_bak2; -- truncate 不会在日志中记录的   删完数据以后 自动增长回到初始值 1
  删除 
update student set age=null  where name="未成年"; 

第五章   数据的简单查询 
1:投影操作   select  列名列表  from  表名;
   如果我们选择某个表中的多个列,那么列名之间用逗号分隔开;

  如果是单个列,只需要列出该列的列名即可;
  如果选择所有的列,可以简单地用“*”号带代替列名列表。
2.表前缀 
   select student.name from student;
3.列别名
select 列A as A ,列B as B,列C as C from 表名 as T;
4.计算列
select name "姓名", age+10 as "十年后的年龄" from student; 
5.排除重复数据 
select distinct age from student;
 
 
 第五章  简单数据查询
 ER:  选择操作:
1:单条件选择操作
eg:select * from student where name=‘张三’;
2:多条件选择操作
组合where条件  and  or;
eg: select * from student where age>18 and age<34;
eg: select * from student where age<18 or age>34;
3:执行范围测试(BETWEEN) 一个范围搜索,大于等于下限,并且小于等于上限。
eg:SELECT 列A, 列B FROM 表 WHERE 列C BETWEEN 下限 AND 上限;
4: 定义集合关系(IN或NOT IN)
eg:SELECT 列A, 列B FROM 表  WHERE 列C IN (值集合);
5:模糊查询(LIKE)
eg:SELECT 列A, 列B FROM 表  WHERE 列C LIKE 模式;
通配符       “_”通配符:表示任何单个字符
                   “%”通配符:表示包含零个或多个任意字符
6:处理空值数据 IS  IS NOT
eg: SELECT * FROM t_student WHERE 性别 IS NULL;

SAN :排序操作 ASC :升序排列 DESC:降序排列  默认为升序排列
1:单列排序
eg:SELECT 列A, 列B, 列C FROM 表 ORDER BY 列A;
2:多列排序
eg:SELECT 列A, 列B, 列C FROM 表 ORDER BY 列A, 列B, 列C...;
3:基本查询SQL的执行顺序
第一步:执行FROM
第二步:WHERE条件过滤
第三步:执行SELECT投影列
第四步:执行ORDER BY 排序
 
 第六章   聚合函数与分组
6.1   使用聚合函数进行统计汇总
count :返回结果集中行的数目
sum:返回结果集中所有值的总和
avg:返回结果集中所有值的平均值
max:返回结果集中所有值的最大值
min:返回结果集中所有值的最小值

6.1.1执行行和列计算
select count (计算规范)from  表名;
计算规范关键字:
*  :计算所有选择的行,包括null。
all:计算指定列的所有的非空值行。
distinct:  计算指定列的所有唯一非空值行。 

6.1.2 返回列合计值
 select sum (计算规范) from 表名;
6.1.3 获取列平均值
select avg (计算规范) from 表名;
6.1.4 返回最大值和最小值
 select sum (计算规范) from 表名;   sum()是没有*的 只有 列名 或则 distinct 列名
select  sin (计算规范) from 表名; 

 -- ifnull()  后面跟两个参数 1 列名 2 显示的值 
select  avg (ifnull(score,0))  from t_les6;
 
第六章  数据聚合于分组
  6.2 数据分组
 6.2.1 过滤分组数据   group by
eg: select 列A,聚合函数(聚合函数规范) from 表名 where 过滤条件 group by 列A;
6.2.2 使用having 子句 
 select 列A,聚合函数(聚合函数规范) from 表名  where 过滤条件 group by 列A having 过滤条件;
  having 与 where 的区别:二者都是过滤条件,where运行在分组前,因此不能执行任何聚合函数。having是运行在分组后,只能用做聚合函数的过滤。
6.2.3 SQL执行顺序 
 第一步:执行FROM
第二步:WHERE条件过滤
第三步:GROUP BY分组
第四步:执行SELECT投影列
第五步:HAVING条件过滤
第六步:执行ORDER BY 排序

mysql基本操作——转自http://www.cnblogs.com/hellokitty1/p/4189608.html

标签:数据一致性   student   建表   关系数据库   基本操作   编号   区别   字符   modify   

原文地址:https://www.cnblogs.com/Life-is-Demo/p/9118852.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!