陈同心

http://blog.csdn.net/ctxbloger

23 数据库

数据 描述事物的符号

数据库 存放数据的仓库

数据库管理系统 组织和存储数据 维护高效的获取和维护数据

数据库管理员(Database Administrator DBA)

最终用户 数据库应用程序的使用者

关系数据库 

    采用关系结构存储与管理数据

    采用结构化查询语言SQL作为客户端与数据库服务器间的桥梁

    目前主流数据库技术

NOSQL

    Not Only Sql数据库 泛指非关系数据库

mysql设置编码:

    vim /etc/my.cnf

    在[mysqld]选项下加入 default-character-set=utf8

安装mysql后执行mysql_secure_installation进行配置

设置root用户允许远程连接

    grant all on *.* to root@'%' identified by "123456"

SQL语句:结构化查询语言

    DQL 数据查询语言

    DML 数据操作语言

    DDL 数据控制语言

    TCL 事物控制语言

DDL语句:

    show databases

    create database 数据库名 charset=utf8

    drop database 数据库名

    use 数据库名

    select database() 查看当前选择的数据库

    show tables

    create table 表名(

        字段名 类型 约束,

        ...

    )

    alter table 表名 add|change|drop|modify 列名 类型

    decs 表名 查看表结构

    rename table 旧表名 to 新表名

DML语句

    insert into 表名 values (val1,val2)

    insert into 表名 (col1, col2 ) values (val1,val2)

    update 表名 set 字段名=值 where 条件

    delete from 表名 where 条件

DQL语句

    select * form 表名

    使用distinct 清除重复行

    order by (asc|desc) 排序 可以多字段排序

    limit start, count; 从第几行开始取几行 用于分页

-- 创建表
create table t_student
(
	id int(4) primary key,
	sname varchar(200) not null,
	address varchar(200)
);

-- 删除表
drop table t_student

-- 查看表结构
desc t_student

-- 添加表字段
alter table t_student add sex int(1) not null default 1
-- 改变表字段
alter table t_student change sname name varchar(300) not null
-- 修改表字段
alter table t_student modify id int(4) auto_increment
-- 查询
select * from t_student
-- 插入所有字段值
insert into t_student values(1,"zhangsan", "beijing", 0)
-- 插入指定字段值
insert into t_student (id, name) values (2, "lisi")
-- 插入多行
insert into t_student (id, name) values (3, "wangwu"), (4, "zhaoliu")
-- 插入带自增字段的表数据
insert into t_student values(0, "sunqi", "beijing", 1)
-- 把id=5的记录地址改为广州
update t_student set address='guangzhou' where id =5
-- 删除所有数据
delete from t_student
-- 删除地址为beijing的学生
delete from t_student where address="beijing"
-- 执行sql脚本文件

备份

    mysql dump -uroot -p 数据库名 > 文件名.sql

恢复

     mysql dump -uroot -p 数据库名   < 文件名.sql

聚合函数:快速统计数据

    count(*|字段名|常量)  统计有多少记录

    max(字段名) 查询最大值啊

    min(字段名)最小值 

    avg(字段名) 平均值

    sum(字段名) 求和

内置函数

    concat (str1,str2,...)连接字符串

    substring(str, pos , count) 截取字符创

    trim(str) 去除空格

    时间函数

        data_format(current_data(), "%y%m%d") 日期变字符串

分组

    GROUP BY 子句将表分成若干组

    语法    select * from table [where ] [group by] [order by]

     -- 统计每个部门平均工资

       select deptno, avg(sal) from group by deptno

    如果存在group分组 select子句不能写group by 没有的字段 除非这些字段用在聚合函数中

    having用于过滤分组后的结果

表的约束

    主键约束,唯一约束,检查约束, 非空约束, 外键约束

索引:加速对表的查询

主键自动添加索引

    手动创建索引

       create index 索引名 on table (col1, col2...)

        drop index 

索引注意:

   1、索引数据可能占用大量的存储空间

    2、 索引改善检索操作的性能 降低插入 修改删除的性能

    3.限制表中的索引数目

    4、唯一性不好数据建索引用处不大

    5、索引用于数据过滤和数据排序

    6、可以在索引中定义多个列

视图:从若干表和其他视图构造出来的虚表

    create view v_tmp as select * from emp [whith read only]

事务:一个操作序列,这些操作要么都做 要么都不做

    开启 begin

    提交 commit

    回滚 rollback

关系:

一对一关系 只需要让外键字段同时有唯一约束

一对多 只需要在那张表中增加一个外键字段

多对多 需要一个中间表 转化成两个多对一关系


阅读更多
文章标签: 人工智能 mysql
个人分类: 10000小时计划
所属专栏: 人工智能启蒙录
想对作者说点什么? 我来说一句

数据库介绍(23)

2015年10月07日 79MB 下载

23数据库模板

2007年09月12日 184KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭