mysql学习笔记.docx

上传人:b****5 文档编号:7368208 上传时间:2023-01-23 格式:DOCX 页数:20 大小:22.79KB
下载 相关 举报
mysql学习笔记.docx_第1页
第1页 / 共20页
mysql学习笔记.docx_第2页
第2页 / 共20页
mysql学习笔记.docx_第3页
第3页 / 共20页
mysql学习笔记.docx_第4页
第4页 / 共20页
mysql学习笔记.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

mysql学习笔记.docx

《mysql学习笔记.docx》由会员分享,可在线阅读,更多相关《mysql学习笔记.docx(20页珍藏版)》请在冰豆网上搜索。

mysql学习笔记.docx

mysql学习笔记

mysql学习内容

1建库

2建表

3对表中记录的查询

4用户的密码管理

5用户的授权与权限的撤消

6数据的备份与恢复

7用binlog搭建AB复制

8读写分离

9mysql群集

mysql开源跨平台

库是以目录的形式存放在服务器本机的物理磁盘上的数据库名就是目录名

[root@rhel6bin]#./mysqld_safe--user=mysql&

启动数据库

[root@rhel6bin]#./mysql

WelcometotheMySQLmonitor.Commandsendwith;or\g.

YourMySQLconnectionidis1

Serverversion:

5.0.56-logSourcedistribution

Type'help;'or'\h'forhelp.Type'\c'toclearthebuffer.

[root@rhel6bin]#netstat-utnalp|grepmysql

tcp000.0.0.0:

33060.0.0.0:

*LISTEN30581/mysqld

mysql>

启动数据库

mysql数据库管理员root密码默认为空在没有作任何授权的情况下,管理员帐号为root

每条结束使用;结束

\c;结束这条sql语句

mysql>selectdatabase();查看当前操作的数据库是哪个

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

|database()|

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

|NULL|

+------------+('man','wo

1rowinset(0.00sec)

mysql>selectuser();查询当前操作的数据库的登录用户

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

|user()|

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

|root@localhost|

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

1rowinset(0.00sec)

mysql>showdatabases;

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

|Database|

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

|information_schema|是虚拟库不占用磁盘空间数据存放在内存中存放的是mysql服务的初始信息

|mysql|是服务器的授权信息库不能删除和损坏

|test|是个公共库

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

3rowsinset(0.00sec)

建立自定义数据库库名具有唯一性区分大小写要有标识性不要用关键字不能使用纯数字

mysql>createdatabasestudb;建立数据库

QueryOK,1rowaffected(0.00sec)

mysql>dropdatabasestudb;删除数据库;如果库中有表一并删除

QueryOK,0rowsaffected(0.00sec)

mysql>usestudb;切换数据库

Databasechanged

建表(建表时要使定一个数据库)

具有唯一性,区分大小写,要有标识性,不能用关键字

mysql>createtablestu_tab(

->namechar(8),

->sexchar(4),

->ageint(3)

->);

QueryOK,0rowsaffected(0.04sec)

mysql>showtables;显示当前库中已有的表

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

|Tables_in_studb|

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

|stu_tab|

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

1rowinset(0.02sec)

mysql>descstu_tab;查看表结构

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

|Field|Type|Null|Key|Default|Extra|

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

|name|char(8)|YES||NULL||

|sex|char(4)|YES||NULL||

|age|int(3)|YES||NULL||

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

3rowsinset(0.02sec)

mysql数据类型

1数据类型

整型默认int类型有符号unsigned

浮点型(有小数位)单精度双精度

2字符型

char定长,不够指定宽度补空格

varchar变长(0-255)

3日期类型

日期date

时间time

年year

日期时间datetime

获取当前系统时间

mysql>insertintoshijianvalues('hehe',now(),now());

QueryOK,1rowaffected,2warnings(0.03sec)

mysql>select*fromshijian;

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

|name|rzsh|shri|

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

|hehe|2012|2012-05-21|

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

1rowinset(0.00sec)

mysql>insertintoshijianvalues('zz',2012,"19001213");

QueryOK,1rowaffected(0.00sec)

mysql>select*fromshijian;

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

|name|rzsh|shri|

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

|hehe|2012|2012-05-21|

|zz|2012|1900-12-13|

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

2rowsinset(0.00sec)

年份是以四份显示的,不足四位的以四位补齐,在00~69区间内自动以20补齐,在70~99之间以19补齐

4复合类型

set多选

enum单选

mysql>createtablet4(

->namechar(8),

->sexenum('girl','boy'),

->lovesset('book','film','music')

->);

QueryOK,0rowsaffected(0.05sec)

插入记录

mysql>insertintostu_tabvalues('zz','girl','999');

QueryOK,1rowaffected(0.01sec)

查看表中的记录

mysql>select*fromstu_tab;

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

|name|sex|age|

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

|zz|girl|999|

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

1rowinset(0.00sec)

删除记录

mysql>deletefromstu_tab;

QueryOK,3rowsaffected(0.00sec)

删除某条记录

mysql>deletefromshijianwherename='zz';

QueryOK,1rowaffected(0.03sec)

mysql>select*fromshijian;

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

|name|rzsh|shri|

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

|hehe|2012|2012-05-21|

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

1rowinset(0.00sec)

mysql>insertintoshijianvalues('hehe',now(),now());

QueryOK,1rowaffected,2warnings(0.03sec)

mysql>showcreatetablet4;查看表的建表过程

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

|Table|CreateTable|

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

|t4|CREATETABLE`t4`(

`name`char(8)defaultNULL,

`sex`enum('girl','boy')defaultNULL,

`loves`set('book','film','music')defaultNULL

)ENGINE=MyISAMDEFAULTCHARSET=latin1|

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

1rowinset(0.02sec)

mysql>insertintot4values('zz','girl','book,film');

QueryOK,1rowaffected(0.00sec)

约束条件

在tea库中建teachertab表

有老师的名字老师的名字最多是4个汉字,要求插入记录时必须写老师的名字(name)

老师的性别要求只能是男性或女性也可以保密(sex)

还要有年龄字段老师的年龄大多数都在30岁左右(nl)

还要有所教的科目hostkerneloracle(km)

入职年份(rznf)

生日(sr)

工资(月薪最高在2W左右)(gz)

还要有上班的迟到记录字段(cd)

表结构的修改

语法格式

altertable表名

add添加新字段

drop删除字段

change给字段改名

modify修改字段的类型(字段类型改变,值也改变)

在age字段下面添加一个字段,存放老师的爱好film,music,footbal

mysql>altertableteachertabaddhobbyset('film','music','football')default'football'afterage;

添加一个新字段num存放老师的编号00000001在所有记录上方

mysql>altertableteachertabaddnumvarchar(8)first;

删除字段

mysql>altertableteachertabdropmail;

QueryOK,0rowsaffected(0.06sec)

Records:

0Duplicates:

0Warnings:

0

修改字段名(也可字段类型)

mysql>altertableteachertabchangekmsubjectset('host','kernel','oracle');

QueryOK,0rowsaffected(0.05sec)

Records:

0Duplicates:

0Warnings:

0

修改字段类型

mysql>altertableteachertabmodifysryear;

QueryOK,0rowsaffected(0.04sec)

Records:

0Duplicates:

0Warnings:

0

改变表的名字

mysql>altertableteachertabrenameteacher;

QueryOK,0rowsaffected(0.03sec)

表的复制

mysql>createtablet2selectnum,name,sex,mailfromteacher;

QueryOK,7rowsaffected(0.04sec)

Records:

7Duplicates:

0Warnings:

0

复制表时若字段有key属性,那原表的key属性不会被复制

key

1主键primarykey具有唯一标识表中每条记录的值的一个或多个域。

主键不允许为Null,并且必须始终具有唯一索引。

主键用来将表与其他表中的外键相关联。

2索引index

3unique设置unique的字段其数据不能重复

4外键保持数据一致性,完整性,主要目的是通过主表中的数据控制存储在从表中的数据。

使两张表形成关联,外键只能引用外表中的列的值或使用空值。

索引会增加查询的速度,减慢插入速度,占用磁盘空间

创建index字段

1建表时就把字段设置成索引字段

mysql>createtablet5(

->namechar(8)notnull,

->ageint(3)notnull,

->index(name)

->);

QueryOK,0rowsaffected(0.07sec)

mysql>desct5;

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

|Field|Type|Null|Key|Default|Extra|

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

|name|char(8)|NO|MUL|NULL||

|age|int(3)|NO||NULL||

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

2把表中的某个字段设置成索引字段

mysql>createindexname(index名字)ont6(name)(字段名);

QueryOK,0rowsaffected(0.03sec)

Records:

0Duplicates:

0Warnings:

0

3把表中的多个字段设置成索引字段(一个表中最多有15个索引字段)

mysql>createtablet7(

->namechar(8),

->sexenum('g','b'),

->ageint,

->index(name),

->index(sex)

->);

QueryOK,0rowsaffected(0.07sec)

删除index

mysql>dropindexnameont5;

QueryOK,0rowsaffected(0.07sec)

Records:

0Duplicates:

0Warnings:

0

unique数据不允许重复

mysql>createtablet8(stu_numchar(8)notnull,namechar(8)notnull,agetinyint

(2)unsignednotnull,unique(stu_num),index(name));

QueryOK,0rowsaffected(0.03sec)

mysql>desct8;

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

|Field|Type|Null|Key|Default|Extra|

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

|stu_num|char(8)|NO|PRI|NULL||

|name|char(8)|NO|MUL|NULL||

|age|tinyint

(2)unsigned|NO||NULL||

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

更新update

mysql>updatet8setstu_num='00000003'wherestu_num="";

QueryOK,1rowaffected(0.00sec)

Rowsmatched:

1Changed:

1Warnings:

0

mysql>select*fromt8;

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

|stu_num|name|age|

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

|00000001|zz|1|

|00000002|zz|2|

|00000003|zz|250|

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

mysql>updatet8setage=18,stu_num='00000004'wherename='zz'andage=2;

QueryOK,1rowaffected(0.00sec)

Rowsmatched:

1Changed:

1Warnings:

0

mysql>select*fromt8;

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

|stu_num|name|age|

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

|00000001|zz|1|

|00000004|zz|18|

|00000003|zz|250|

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

主键

mysql>altertablet8

->addidint(3)primarykeyauto_increment;

QueryOK,3rowsaffected(0.04sec)

Records:

3Duplicates:

0Warnings:

0

mysql>desct8;

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

|Field|Type|Null|Key|Default|Extra|

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

|stu_num|char(8)|NO|UNI|NULL||

|name|char(8)|NO|MUL|NULL||

|age|tinyint

(2)unsigned|NO||NULL||

|id|int(3)|NO|PRI|NULL|auto_increment|

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

复合主键

mysql>createtableserver(hostipchar(15)notnull,sernamechar(10),serportchar(5),accessenum('y','n'),primarykey(hostip,serport));QueryOK,0rowsaffected(0.04sec)

只要复合主键的字段值不同时出现时就允许插入表中复合主键的值不能够同时重复

外键

要给表设置外键字段需要指定当前表的存储引擎为innodb

存储引擎:

一段用来执行sql语句的代码是mysql服务器提供不同存储引擎支持的功能、存储数据方式位置都不同

1当前的mysql服务器支持哪些引擎

mysql>showengines\G;

2查看当前的数据库默认使用的存储引擎

mysql>showvariableslike"table_type";

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

|Variable_name|Value|

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

|table_type|MyISAM|

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

3建表时指定表使用的存储引擎

mysql>createtableb(n

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1