数据库学习入门数据库基础入门Word文件下载.docx

上传人:b****6 文档编号:8541487 上传时间:2023-05-11 格式:DOCX 页数:15 大小:22.39KB
下载 相关 举报
数据库学习入门数据库基础入门Word文件下载.docx_第1页
第1页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第2页
第2页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第3页
第3页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第4页
第4页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第5页
第5页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第6页
第6页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第7页
第7页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第8页
第8页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第9页
第9页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第10页
第10页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第11页
第11页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第12页
第12页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第13页
第13页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第14页
第14页 / 共15页
数据库学习入门数据库基础入门Word文件下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库学习入门数据库基础入门Word文件下载.docx

《数据库学习入门数据库基础入门Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库学习入门数据库基础入门Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。

数据库学习入门数据库基础入门Word文件下载.docx

  DDL:

  createtableBA(DatabaseAdministrator)

  2、不同数据库的独特管理方式

  3、数据库的调优

  4、精通数据库的备份、回复机制

  -----------------------------

  MYSQL的安装与配置

  ----------------------------

  安装:

选择普通安装类型

  .配置

  1、选择配置类型:

DetailedConfiguration

  2、选择服务器类型:

DeveloperMachine

  3、选择数据库的是使用情况:

  --多功能数据库(MultifunctionalDatabase)

  --只是事务处理数据库(TransactionalDatabaseOnly)

  --只是非事务处理数据库(Non-TransactionalDatabaseOnly)

  4、InnoDB表空间文件存储的盘符,默认在c:

\

  5、数据库并发连接数配置:

Decisionsupport

  6、MYSQL服务器端口:

默认:

3306

  7、EnableStrictMode:

是否允许严格样式检查:

取消

  8、选择字符编码:

手工选择:

gb2312,windows下中文支持

  9、服务器默认安装到windows系统服务中,默认服务自启动,选择自动配置环境变量

  10、填写数据库管理系统的管理员密码

  --在mySQL中数据库管理员的用户名为:

root

  11、是否允许使用root用户远程登录数据库

  12、测试配置是否正确c:

\>

c:

\mysql\bin\mysqlshow

  ------------------------

  MYSQL的登录

  .开始--运行--cmd

  .输入:

mysql-uroot-p,然后输入密码

  .或者:

mysql-uroot-p密码

  .退出quit或者\q

  --不必全在一个行内给出一个命令,较长命令可以输入到多个行中。

mysql通过寻找终止分号而不是输入行的结束来决定语句在哪儿结束

  ->

等待多行命令的下一行

  '

>

等待下一行,等待以单引号开始的字符串结束

  如果你决定不想执行正在输入过程中的一个命令,输入\c取消它

  能够以大小写输入关键词,结果是等价的

  --------------------

  基本的SQL语句

  创建数据库---createdatabaseschool;

  查看有哪些数据库--showdatabases;

  删除数据库---dropdatabaseschool;

  --------------------------

  向数据库中存储数据

  1、首先进入数据库usedbname;

  use类似quit,不需要一个分号,写也无碍

  use必须在一个单行上给出

  2、查看数据库中的表showtables;

  3、在数据库中创建表createtablestudent

  (namevarchar(20),ageint,sexchar

(2));

  4、向表中插入数据---insertintodbnamevalues(‘张三’,18,‘男’);

  5、查看表中所有的数据--select*fromstudent;

  只查看姓名和年龄---selectname,agefromstudent;

  常用的数据类型

  char(M)固定长度字符

  用来表示固定长度字符串,字符串的长度是1-255

  VARCHAR(M)可变长度字符

  具有灵活性的字符数据类型,范围:

1-255

  处理char类型的数据比varchar类型的数据要快,有时会快50%(char类型存储的数据的长度是声明变量时的固定长度,而不管数据的实际长度,varchar存储的是按数据的实际长度,从而减小了数据文件的大小)

  其他常用的数据类型

  DATE---日期类型,显示‘YYYY-MM-DD’

  DATETIME--日期和时间的组合,显示‘YYYY-MM-DDHH:

MM:

SS'

  TEXT/BLOB文本和大对象

  TEXT可以保存字符串的长度在255-65535字节内。

BLOB是一个能保存二进制数据的大对象,区别是TEXT不区分大小写,而BLOB区分大小写。

  SQL语句的导入

  1、编写SQL脚本(.sql)

  2、导入mysql-uusername-p<

***.sql

  &

练习:

老师表:

teacher

姓名,性别,年龄,课程

  导出sql脚本---mysqldumpstu-uroot-p>

  查看表的结构------desctablename

  修改表中的数据---updatetablenamesetcolname=valuewhere条件

  删除数据-----deletefromteacherwhereage=

  删除表中所有数据---deletefromteacher;

  删除表---droptabletablename

  根据条件进行过滤查找---select*fromtablenamewhere条件

  查找出版社为“清华出版社”的所有书籍---select*frombookswherepub=‘清华出版社’;

  查找出库存大于50的所有书籍---select*frombookswherestore>

50;

  查找出“西游记”的库存量---selecttitle,storefrombookswheretitle=‘西游记’;

  SQL运算符

  >

大于<

小于>

=大于等于<

=小于等于!

=,<

不等于

  查看数据库的信息----\s

  mysql常用函数

  1、查看数据库版本---selectversin();

  计算机的时间是存在BIOS()

  2、查看当前数据库的日期----selectcurrent_date();

  3、查看当前数据库时间----selectnow();

  4、查看当前连接数据库的用户---selectuser();

localhost:

代表是本机

  createtableuser(idint,namevarchar(20),birdate,deadatetime);

  insertintouservalues(1,'

zhangsan'

now(),now());

  or和and查询

  or(满足一个条件)

  and(都需要满足)

  查找学生EQ为80分或90分的学生

  select*fromstuwhereEQ=80orEQ=90;

  查找学生EQ为90分并且性别为女的学生

  select*fromstuwhereEQ=90andsex='

女'

;

  in(x,x)返回条件中的记录与or作用相似

  select*fromtablenamewhere条件in(,);

  between‘’and‘’返回两者之间的记录

  查询年龄在20-30之间的所有学生

  select*fromstuwhereagebetween20and30;

  like与通配符(%)一起使用,模糊查询

  查找出姓张的学生

  select*fromstuwherenamelike‘张%’;

  查询出使用163邮箱的所有学生

  select*fromstuwhereemaillike‘’;

  查询出邮箱里面含有a的所有学生

  select*fromstuwhereemaillike‘%a%’;

  orderby实现排序(从小到大)--asc

  将学生的年龄从高到低排列

  select*fromstuorderbyagedesc;

(降序)

  将学生的年龄从低到高排列

  select*fromstuorderbyageasc;

(升序)

  数据默认为升序(从低到高)

  select*fromstuorderbyage;

  as为查询的列起别名

  1、查询所有学生只列出姓名,年龄,性别

  selectnameas'

姓名'

ageas'

年龄'

sexas'

性别'

fromstu;

  groupby对于查询出的数据结果进行分类(分组)

  2、将学生按性别进行分类

  select*fromstugroupbysex;

  将学生按年龄进行分类

  select*fromstugroupbyage;

  3、having子查询:

对于where查询出的结果再次进行查询

  查找出年龄大于20岁学生,并且在其中找出姓名等于xxx的学生

  select*fromstuwhereage>

20havingname='

xxx'

  select*fromstuwhereage>

20andname='

  4、distinct过滤查询的重复型记录,只显示唯一的记录

  将学生性别过滤

  selectdistinct(sex)fromstu;

  count查看表中有几条数据

  selectcount(*)fromstu;

  selectcount(distinct(sex))fromstu;

  limit限制查询结果的输出数量同时也可以实现数据的分页

  查询EQ前三名的学生

  select*fromstuorderbyEQdesclimit3;

  实现查询记录的分页

  select*fromstulimit0,3;

  select*fromstulimit3,3;

  约束----定义了表级的强制规则、数据的完整性

  非空约束(notnull)createtabletest(idintnotnull);

insertintotestvalues();

  innodb会报错,myISAM会整形默认以0填充

  唯一约束(UNIQUE)不允许列中的数据重复

  createtabletest(idint,unique(id));

  insertintotestvalues

(1);

  默认约束(default)createtabletest(idintnotnulldefault'

111111'

);

  主键约束(primarykey)是一个字段或一组字段(组合键),用于唯一标识表中的记录,它可以确保每个记录是唯一的。

  createtabletest(idint,primarykey(id));

  insertintotestvaluse

(1);

  id主键自增,减

  createtabletest(idint,namevarchar(20),primarykey(id));

  insertintotestvalues(1,'

张安'

);

  auto_increment的特点-------自增值当删除某一值时,他不会自动填充,而是继续自增1

  createtabletest(idintnotnullauto_increment,namevarchar(20),primarykey(id));

  insertintotest(name)values('

  创建一个有合理约束的表

  createtablepeople(idintnotnullauto_increment,namevarchar(20)notnull,ageintnotnull,sexchar

(2)notnull,pcodevarchar(50),telvarchar(50),emailvarchar(50),primarykey(id));

  查询出所有学生的档案信息

  select*fromstudent,schoolwhere=;

  select*fromstudentasa,schoolasbwhere=;

  查询所有学生档案信息只需显示:

学生姓名,年龄。

毕业学校,学校地址

  select,,,sfromstudent,schoolwhere=;

  select,,,fromstudentasa,schoolasbwhere=;

  外键约束(foreignkey)

  如何创建外键

  foreignkey:

定义子中的列为外键

  references:

标记外键所要参考的父表和列

  ondeletecascade:

允许在删除父表的列的同时,删除子表的列rm,存放数据表的结构定义

  .isd,数据文件,存放数据表中的各个数据行的内容

  .ism,索引文件,存放数据表的所有索引信息。

  MYISAM是数据表是ISAM数据表的继承者,也是三个文件,分别是:

  .frm,结构定义文件;

  .MYD,数据文件;

  .MYI,索引文件。

  BDB数据表用两个文件来表示,分别是;

  .frm,结构定义文件

  .DB,数据表数据和索引文件

  INNODB:

由于采用表空间的概念来管理数据表,所以他只有一个与数据表对应.frm文件,同一目录下的其他文件表示为空间,存储数据表的数据和索引

  HEAP数据表是一个存在与内存中的表,所以他的数据和索引都存在于内存中,文件系统中只有一个.frm文件,及定义结构,当mysql关闭后数据都将消失。

  定义表的的类型

  createtabletest(idint)engine=heap;

  事务表币非事务表有几大优势:

  更安全。

即使mysql崩溃或遇到硬件问题,要么自动恢复,要么从备份加事务日志恢复,你可以取回数据

  你可以合并许多语句,并用commit语句同时接受她们全部(如果autocommit被禁止掉)

  你可以执行rollback来忽略你的改变(如果autocommit被禁止掉)

  如果更新失败,你的所有改变都变回原来。

(用非事务安全表,所有发生的改变都是永久的)

  事务安全存储引擎可以给那些当前用读得到许多更新的表提供更好的部署。

  非事务表自身有几大优点:

  非事务表自身有几大优点,因为没有事务开支,所有优点都能出现:

  更快

  需要更更少的磁盘空间

  执行更新需要更少的内存

  你可以在同一个语句中合并事务安全和非事务安全表来获得两者最好的情况。

尽管如此,在autocommit被禁止掉的事务里,变换到非事务安全表依旧即使提交并且不会被回滚

  如何在innodb中实现事务:

  mysql>

begin;

  QueryOK,0rowsaffectedsec)

insertintotest11values(1,'

zhangs'

  QueryOK,1rowaffectedsec)

select*fromtest11;

  +------+--------+

  |id|name|

  |1|zhangs|

  1rowinsetsec)

end;

  ERROR1064(42000):

YouhaveanerrorinyourSQLsyntax;

checkthemanualthatcorrespondstoyourMySQLserver

  versionfortherightsyntaxtousenear'

end'

atline1

rollback;

  Emptysetsec)

commit;

  修改表类型

  sql语句:

altertabletablenameengine=innodb;

  注意:

不可以将mysql系统表比如‘user’或‘host’转换成innodb类型。

系统表必须为myisam类型

  对myisam进行事务处理---锁

  locktabletablename(read,write)

  locktable可以对表进行加锁控制,以保证用户并发访问时非事务表的数据一致性

  unlocktables释放锁

  mysql之index(索引)

  什么是索引

  索引被用来快速找出在一个列上用一特定值的行。

没有索引,mysql不得不首先以第一条记录开始并然后读完整个表直到他找出相关的行,表越大,花费时间越多。

如果表对于查询的列有一个索引,mysql能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。

  索引的作用:

  快速找出匹配一个where子句的行

  当执行连接时,从其他表检索行

  对特定的索引列找出max()或min()值

  mysql中的索引:

  索引实际上是一个分离的列表,具有一个指向全表的指针

  myisam表,索引被存储为分离文件

  innodb,索引存储为表空间的一部分

  mysql有四种类型的索引:

主键(primarykey)、唯一索引(unique)、全文索引(fullindex)、普通索引(index)

  创建index

  1、createindexindexnameontablename(columnname);

  indexname(索引名称)

  tablename(表名称)

  columnname(要创建索引的字段名称)

  2、altertabletablenameaddindexindexname(columnname);

  查看索引----showkeysfromtablename;

  删除index--altertabletablenamedropindexindexname;

  fullindex(myisam支持)

  createtablechat(idint,chat1text,chat2text);

  createfulltextindexindex_textontablename(col1,col2);

  altertabletablenameaddfulltext(col1,col2);

  高效使用索引:

  太多的索引,占用空间

  每次进行插入或更新时,索引都必须针对变化

  重新排序,会导致很多额外负担

  何处使用索引

  1、where从句中条件匹配的行

  selectnamefromstudentwherecommentlike“a%”;

  comment域的索引就起到了作用

  Explain分析索引

  语法:

explainselectagefromtest12;

  Explain分析mysql中的索引:

  table:

查询中涉及的表

  type:

显示连接中使用了何种类型

  const(最好),eq_ref,fef,range,index和allpossible_keys:

可能用到的索引

  key:

实际使用的索引,可以在select语句中使用useindex(indexname)来强制使用索引,用ignoreindex(indexname)来强制忽略索引key_len:

使用

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2