数据库学习入门

1.数据库作用

数据是数据库中存储的基本对象,包括:文字 图形 图像 声音 有组织的 可共享的数据集合

2.常用的DBMS

MYSQL oracle SQL-Server  DB2

3.MYSQL登录

开始-运行-cmd   输入:mysql -uroot -p,然后输入密码或者 mysql -uroot -p 密码 退出 quit \q

4.基本SQL语句

创建数据库--create database school;

查看有哪些数据库---show databases;

删除数据库-drop database school;

5.向数据库中存储数据

首先进入数据库 use dbname;

查看数据库中的表 show tables;

在数据库中创建表 create table student(name varchar(20),age int sex char(2));

向表中插入数据-insert into dbname values('张三',18,‘男’);

查看表中所有的数据--select *  from student;

只查看姓名和年龄--select name,age  from student;

6.常用的数据类型

char varchar int 

7.其他常用的数据类型

date datetime text/blob

8.mysql常用函数

查看数据库版本-select versin();

查看当前数据库时间--select current_date();

查看当前连接数据库的用户--select user()

or(满足一个条件)和and(都需要满足)

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

between and 返回两者之间的记录

like与%一起使用 模糊查询  like‘张%’ like‘3.com’  like'%a%';

order by 实现排序-asc desc  select *  from stu order by age desc;

as为查询的列起别名 select name as '姓名',age as '年龄',sex as '性别' from stu;

group by对于查询出的数据结果进行分类(分组)--select  *  from stu group by sex;

having子查询:对于where查询出的结果再次查询

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

select *  from  stu where age>20 having name='XX' 或者age>20 and name='XX'

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

将学生的性别过滤---select distinct(sex) from stu;

count 查看表中有几条数据  select count(*) from stu;

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

查询EQ前三名的学生---select *  from stu order by EQ desc limit 3;

实现查询记录的分页  select *  from stu limit 0,3;

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

非空约束(not null) 唯一约束(UNIQUE) 默认约束(default) 主键约束(primary key)

id逐渐自增,减  auto_increment的特点----自增值 当删除某一值时,他不会自动填充,而是继续自增1  外键约束(foreign key)

8.如何控制冗余数据

一般来说通过数据库的范式理论 设计数据库的范式来控制冗余

共有5个范式 一般达到第三范式 第一范式:对于表中的每一行,必须且仅仅有唯一的行值,在一行中的每一列仅有唯一的值并且具有原子性 第二范式 要求非主键列是主键的子集,非主键列活动必须完全依赖整个主键。主键必须有唯一性的元素,一个主键可以由一个或更多的组成唯一值的列组成。一旦创建,主键无法改变,外键关联一个表的主键。主外键关联意味着一对多的关系。第三范式:要求非主键列互不依赖  

MYSQL的聚合函数

1.最大值 找出EQ最高的学生  select  name,eq  from student where eq=(select  max(EQ) from student);

select max(article) as article from shop;

2.最小值 找出EQ最低的学生 select name,min(EQ) from student;                                           

3.count()统计查询出的记录总数                                                                                                          查询出学生的总条数  select count(name)  from student;  

4.avg()求平均值

查询学生EQ的平均值 select avg(EQ)  from  student;

5.sun() 求和                                                        

查询学生EQ的总和 select sum(EQ)  from student;

6.修改字段类型  alter table student modify sex char(5);

增加列 alter table student add address varchar(50);

删除列 alter table student drop  address;

修改列的名称 alter table student change name names varchar(20);

修改表的名字  alter table student  to  stu;

7.MYSQL之表连接

内链接:等值连接,因为他将两个表中的公共字段有相等的值连接起来。

左连接:显示sql语句中left join左边表中的所有记录,即使在left join右边的表中没有满足连接条件的数据也被显示。当满足连接条件时,left join右边的表中的相应的记录与left join左边表中的相应记录结合显示。

右连接:与左连接相对应,他显示sql中 right join右边表中的记录,即使在right join左边没有的记录也被显示。当满足条件时,right join左边表中相应记录将与right join右边表中相应记录进行结合显示。通常左连接和右连接显示内容一致。                                                          left join 以左边的表查询为主    right join 以右边的表查询为主

8.MYSQL之视图  

他可以访问一个或多个表中的数据,是从一个或多个表中派生出的数据对象

视图的特点:1将复杂的查询简单化 2,提供安全机制,它保证用户只可以看得到的数据,系统中真实的表不可被存取的

创建视图  create view case_view as  select cases.id as '订单编号',user.name as '顾客姓名',goods.name as '物品名称' from user inner join(case inner join goods on cases.goods_id=goods.id)on user.id=case.user_id;

create view test.v as  select * from t;

修改视图:alter view viewname as SQL;

删除视图:drop view viewname;

9.MYSQL的事务与引擎 

事务他是一个操作序列,这些操作要么执行要么不执行,他是一个不可分割的工作单位。

事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性

10.如何在innodb中实现事务:

begin 告知服务器要开始一个事务

rollback:如果事务发生异常,那么数据回滚

commit 事务执行成功,进行数据提交

11.锁  lock table tablename(read,write)

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

unlock tables 释放锁

12.index 索引

索引是被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到他找出相关的行,表越大,花费时间越多。如果表对于查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。

MySQL有四种类型的索引:主键(primary key),唯一索引(uinque),全文索引(full  index),普通索引(index)

12.mysql的备份方式:backup  restore copy mysqldump select  into

backup备份myisam表  use test; backup table chat to 'c:\\db_backup';(只生成.frm和.myd 可以在数据库恢复后重建索引)  drop table chat;  restore table chat  from 'c:\\db_backup';

copy备份  停止mysql服务器-避免在备份的时候有用户进行数据库的访问  复制数据库的文件夹

mysqldump备份

1.备份   #mysqldump -uroot -p dbname >xxxname.sql  2.恢复 #mysql -uroot  -p dbname<>

备份某个表

备份  #mysqldump -uroot -p dbname tablename  >xxxname.sql

恢复 #mysql -uroot -p dbname<>

用select into 备份

备份 mysql>select *  from tablename into outfile ‘c:\\db_backup\table.dat’

删除表 mysql>delete from tablename;

恢复 mysql>load data infile 'c:\\db_backup\table.dat' into table tablename;

查看数据库中有哪些数据库 mysqlshow -uroot -p

查看数据库中有哪些表 mysqlshow  -uroot  -p  dbname 

查看数据库中表的结构  mysqlshow -uroot -p dbname tablename

mysqlcheck -uroot -p  dbname //检测

mysqlcheck -urooot -p  --auto-repair dbname //如碰到有问题的表自动进行修复

mysqlcheck -uroot -p  --optimize //优化表

13.MYSQL管理方式

连接方式--mysql -hlocalhost -uroot 通过本地主机,以root用户访问,无需密码验证

mysql -hlocalhost 通过本地主机,匿名用户访问,无需密码验证

设置密码 ---mysqladmin

外部:修改密码-- mysqladmin hlocalhost -uroot -p password "newpassword"

密码为空--mysqladmin hlocalhost -uroot -p  password ""

设置root用户远程访问密码--mysqladmin -hremote -uroot -p password ""

内部设置密码:

设置root用户本地登录密码  set password for ‘root’@‘localhost’=password('000000');

设置root用户远程登录密码 set password  for 'root'@'remote'=password('newpassword');

privileges有哪些 :

alter 修改表和索引 create创建数据库和表 delete删除表中以有的记录 drop 删除数据库和表 inde 创建和删除索引  insert向表中插入数据  select 检索表中的数据 update修改表中的记录 file读写服务器上的数据 process查看服务器中执行的线程信息或杀死线程

reload重载授权表或清空日志,主机缓存或表缓存 shutdown 关闭服务器 all所有权限

revoke取消授权

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容