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

mysql中最常用到的数据类型,约束条件,以及表,字段,行的crud操作指令,function和precedure之间的区别,索引,安全,事务

时间:2017-08-16 00:49:39      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:轻量级   区分   power   连接   不用   func   charset   curd   navicat   

                               数据库总结
传统记录数据的缺点:不易保存,备份困难,查找不便
数据库:存储数据的仓库,描述一个事务的基本信息
优点:1.持久化存储
2.读写速度极高
3.保证数据的有效性

RDBMS
relational database management system
军火当前主要使用两种类型的数据库:1.关系型数据库,2非关系型数据库
关系型数据库的主要产品:
oracle:主要大型项目中使用,银行,电信等项目
mysql:web时代使用最广泛的关系型数据库
ms sql server: 微软的项目中使用 (Microsoft Corporation 微软公司)
sqlite: 轻量级数据库,主要应用在移动平台
 
关系型数据库核心元素
数据行(一条记录,相当于python中的实例对象)   实例对象
数据列(字段,相当于python中实例对象的属性)   字段 实例对象的属性
数据表(数据行的集合,相当于python中的列表)
数据库(数据表的集合,一个数据库中能够有n个数据表)

SQL
structured Query Language
结构化查询语言
在数据库中进行操作的脚本称为sql ,结构化查询语言,
当前关系型数据库都支持使用sql语言进行操作oracle,mysql,ms sql server, sqlite
 
sql语句主要:
1.DQL:data query language   查询语言,select
2.DML:data manager language 操作,增删改,update,delete,insert
TPL:事务处理语言:begin transaction,commit,rollback
DCL:data control language:进行授权与回收,grant,revoke
DDL:data define language:数据库,表的管理:create,drop
CCL:指针控制语言:控制指针完成表的操作,declare cursor
对于web程序,重点是数据的crud,必须熟练编写DQL,DML能够编写DDL完成数据库
表的操作,
sql是一门特殊的语言,专门用来操作数据库
不区分大小写

MYSQL
特点:免费开源,不要钱 跨品台,提供多语言调用的API接口,使用范围广,
基本使用
服务器端安装
终端:sudo apt-get install mysql-server
用于:接收客户端的请求,执行sql语句,管理数据库
服务器端一般以服务方式管理:名称为mysql
 
启动,停止,重启
sudo service mysql start
sudo service mysql stop
sudo service mysql restart
查看进程中是否存在进程mysql服务
ps ajx|grep mysql
grep(gelobal regular expression print)
配置文件目录为/etc/mysql/mysql.cnf
 
客户端:为开发人员与dba使用,通过socket方式与服务端通信,常用的有
navicat命令行mysql

客户端命令
sudo apt_get install mysql-client
mysql --help :详细连接的命令查看帮助文档
 
mysql -uroot -p  mysql: 进入mysql命令行
ctrl +d ,quit ,exit 退出

                  数据
数据库 -----数据表-------数据行(实例对象)-----数据列(实例对象的属性)字段
dadabase--table---select,update,delete,insert,----alter table add/change/,p/\
modify
 
使用数据类型的原则:够用就行,尽量使用取值范围小的,而不用大的,可以节省存储空间
常用数据类型: 整型:int bit
小数:decimal
枚举:enum
字符串: char,varchar,text(大于4000)
日期类型: date,time ,datetime
对于图片,视频,音频等文件,上传到某个服务器上,然后在表中存储这个文件的保存路径
约束:primary key 主键 唯一标示
auto_increment :自动增长
unsigned:无符号的整形 signed
not null:非空
unique:唯一,此列的值不允许重复
default:默认值,不填以默认值,填写以填写为准
foreign key:外键,一般不用,:增加了数据与数据之间的耦合性,不利于后期维护,优化

mysql命令行连接
 
mysql -uroot -p
密码:mysql
 
退出登录:ctrl+d ,quit,exit
 
select version(); 查看版本
select now(); 显示当前时间
 
prompt  :修改输入提示符  可以用 \D,\d,\h,\u \Date \databasee\user\host

 
数据库操作命令
show databases;
use 数据库名;
select database();查看当前使用的数据库
create database 数据库名 charset=utf8; (字符集格式设置成utf8)创建数据库时使
drop database 数据库名; 删除数据库

数据表的操作执令
 
show tables;
desc 表名; 查看表结构 describle
 
create table 表名(字段,类型,约束条件)
alter table 表名 add 列名 类型;
alter table 表名 change 旧列名,新列名 类型;
alter table 表名 modify 列名 修改类型
 
alter table 表名 drop 列名; 删除列
drop table 表名            删除表

curd
create update refer delete
 
 

数据库设计
 
关系性数据库建议在E-R模型的基础上,根据策划设计,抽取出来模型与关系,
制定出表结构,
开发用,设计数据库轮子:db designer ,power designer,直观的看到实体与实体之间的关系
三范式:列不可分,唯一表示,引用主键
E-R模型  e代表entry 一对一,一对多,多对多,
逻辑删除 isdelete bit default 0
消除重复行 distinct:在select 后面列前使用distinct可以消除重复的行
聚合函数
count(*)
mid(列) max(列) avg(列) sum(列)

分组:
按照字段分组,表示此字段相同的数据会被放到一个组中
having是对分组后的数据筛选

  连接查询
当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回
内连接查询:为两个表匹配到的数据
右连接查询:两个表匹配到的数据+ 右表特有数据
左连接查询 两个表匹配到的数据+左表特有数据
select  * from students inner join classes on students.cls_id = classes.id;
on后面是以什么条件连接承德大表,然后以他们公有的属性来展示结果集,
slect 是选择要显示的内容
 
 
 
 
 
 
 
 
 

mysql中最常用到的数据类型,约束条件,以及表,字段,行的crud操作指令,function和precedure之间的区别,索引,安全,事务

标签:轻量级   区分   power   连接   不用   func   charset   curd   navicat   

原文地址:http://www.cnblogs.com/ilutt/p/7368425.html

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