•   欢迎来到21NN网.
  •   请记住本站网址www.21nn.cn

Mysql相干操纵有哪些【MySQL教程】,Mysql,哪些,相关

摘要: 1》建立数据库:  语法:createdatabase数据库名;  语法:showdatabases检察已存在数据库  举例:   Mysql->createdat...
1》建立数据库:
  语法:create database 数据库名;
  语法:show databases 检察已存在数据库
  举例:  

 Mysql->create database zytest;    注重每一条要以;号末端
    Mysql->show databases;查询是不是建立胜利
        >use zytest;

2》删除数据库:
  语法:drop database 数据库名字;<运用此敕令,请注重>
  举例:
    Mysql->drop database zytest; 删除zytest
    Mysql->show databases; 查询是不是删除胜利

3》存储引擎引见:
  1>innoDB引擎
     innoDB是mysql的一种存储引擎,inodb给mysql的表供应了事件日记,回滚、奔溃、修复才能和多版本并发掌握的事件平安。Mysql从3.23.34a最先包含 innoDB存储引擎.
     innoDB是第一个供应外键束缚的表引擎,而且对innoDB对事件处置惩罚的才能。也是别的引擎没法与之对抗的。,
     innodb支撑自动增长列运用auto_increment,自动增长列不值不能为空
     innodb 存储引擎中支撑外键Z(foreign key),外键地点的表为子表,外键所依靠的表为父母,父表中的被子表外检关联的字段必需是主键,当删除、更新父表 的某条信息时,子表也必需有响应的转变,
     innodb存储引擎中,建立表的表构造存储在.frm文件中,数据和索引存储在innodb_data_home_dir 和 innodb_data_file_path定义的表空间.

       元数据文件一切的表的ibdata1假如不定义innodb_data_home_dir 参数。默许就在datadir下面,InnoDB每一个数据表的元数据(metadata)老是保 存在ibdata1 这个同享表空间里,因而该文件必不可少innodb_data_file_path = ibdata1:10M:autoextend

  数据和索引文件鸠合在一起:*.ibd每一个表都有零丁一个元数据,
  表定义文件:*.frm
  一切的表总的元数据文件为ibdata1
  Inoodb存储引擎的
    上风:在于供应了优越的事件管理、崩溃、修复才能和并发掌握,
    瑕玷:是其读写效力稍差,占用的数据空间相对照较大.

   什么是事件??我们先来看看ACID准绳
      ACID是数据库事件一般实行的四个基础要素,离别指原子性、一致性、独立性及耐久性
      原子性(Atomicity):事件的原子性是指一个事件要么悉数实行,要么不实行.也就是说一个事件不可能只实行了一半就 住手了.比方你从取款机取钱, 这个事件能够分红两个步骤:1划卡,2出钱.不可能划了卡,而钱却没出来.这两步必需同时完成.要么就不完成.
   一致性(Consistency):事件的一致性是指事件的运转并不转变数据库中数据的一致性.比方,完全性束缚了a+b=10,一个事件转变了a,那末b也应当随 之转变.
     独立性(Isolation):事件的独立性也有称作断绝性,是指两个以上的事件不会涌现交织实行的状况.由于如许可能会致使数据不一致.
     耐久性(Durability):事件的耐久性是指事件实行胜利今后,该事件所对数据库所作的变动就是耐久的保留在数据库当中,不会平白无故的回滚.

2>MyISAM引擎
    MyISAM存储表分为3个文件,文件与表名雷同,扩大包含frm,MYD和MYI,
    frm为扩大名的文件存储表的构造
    myd为扩大名的文件存储数据
    myi为扩大名的文件存储索引
    长处:占用空间小,。处置惩罚速率快,
    瑕玷:不支撑事件日记的完全性和并发性 3>MEMORY 引擎     Mysql中的特别引擎,一切的数据悉数存放于内存当中,在企业生产环境当中。几乎是用不到。由于数据存储在内存,假如内存涌现异常。将影响数据的完 整性。  长处:存储速率快

  瑕玷:缺少稳定性和完全性

    MyISAM:不支撑外键,不支撑事件,索引和数据离开的,能够加载更多的索引,而且索引是紧缩的,相对内存来讲运用效力就进步不少,,他运用一 种表格锁定的机制,来优化多个并发读写操纵,MYISAM强调了疾速读取操纵;
      运用场所:在承载的大部分项目是读多写少的项目平台中,而MyISAM的读机能是比Innodb强不少的

    Innodb: 支撑外键,支撑事件、回滚,然则索引和数据是严密绑缚的,没有运用紧缩从而会形成INNODB比MYISAM体积巨大不小。
      运用场所:在承载的大部分项目实行insert 和update的话,应当挑选InnoDB.

    锁的引见:mysql罕见的三种锁级别——表级锁、页面锁、行级锁;其中表级锁有两种形式——表同享读锁和表独有写锁。

   MyISAM:
     表级锁:对myisam表举行读操纵的时刻,它不会壅塞其他用户对同一表的读要求,但会壅塞对同一表>的写操纵;
         对myisam表举行写操纵的时刻,它会壅塞其他用户对同一表的读、写要求.

   innodb:

供应行锁(locking on row level),别的,InnoDB表的行锁也不是相对的,假如在实行一个SQL语句时MySQL不能肯定要扫描的局限,InnoDB表同样会 锁全表.

行级锁的长处以下:
    1)当许多衔接离别举行差别的查询时减小LOCK状况。
    2)假如涌现异常,能够削减数据的丧失。由于一次能够只回滚一行或许几行少许的数据。
行级锁的瑕玷以下:
    1)比页级锁和表级锁要占用更多的内存。
    2)举行查询时比页级锁和表级锁须要的I/O要多,所以我们常常把行级锁用在写操纵而不是读操纵。
    3)轻易涌现死锁。
   注重:inodb不能肯定操纵的行,这个时刻就运用的意向锁,也就是表锁on row level);

4》观察存储引擎:
  存储引擎是Mysql的特性,Mysql能够挑选多种存储引擎及差别的存储体式格局,是不是举行事物处置惩罚等;
   1> 查询Mysql支撑的引擎
      Mysql->show engines;

Mysql->show engines\G;

2>查询Mysql引擎细致信息:      

 Mysql->show engine innodb status\G;

   3>查询Mysql默许存储引擎       

Mysql-> show variables like 'storage_engine';

    假如想修正存储引擎,能够在 my.ini中举行修正或许my.cnf中的Default-storage-engine=引擎范例;

5》怎样挑选存储引擎

    在企业生产环境中,挑选一个款适宜的存储引擎是一个很庞杂的题目。每一种存储引擎都有各自的上风,不能笼统的说,谁比谁好。通经常使用的比较多的 是innodb存储引擎
以下是存储引擎的对照:

==========================建立,修正,删除表:

1》建立表的要领:
   语法:create table 表名(
    属性名数据范例完全束缚前提,
    属性名数据范例条完全束缚件,
    。。。。。。。。。
    属性名数据范例
  );

  举例:    

create table example0(
          id int,
          name varchar(20),
          sexboolean);

2》表的完全性束缚:

| 束缚前提 | 申明|

| (1)primary key    | 标识该字段为表的主键,具有唯一性|

| (2)foreign key    | 标识该字段为表的外键,与某表的主键联络|

| (3)not null    | 标识该属于的值不能为空|

| (4)unique    | 标识这个属性值是唯一|

| (5)auto_increment | 标识该属性值的自动增添

| (6)default      | 为该属性值设置默许值|

1>设置表的主键:
     主键是一个表的特别字段,这个字段是唯一标识表中的每条信息,主键和记载的关联,跟人的身份证一样。名字能够一样,然则身份证号码以为不会一样, 主键用来标识每一个记载,每一个记载的主键值都差别,主键能够协助Mysql以最快的速率查找到表中的某一条信息,主键必需满足的前提那就是它的唯一性,表中的 恣意两条记载的主键值,不能雷同,不然就会涌现主键值争执,主键值不能为空,能够是单一的字段,也能够多个字段的组合。

举例:   

 create table sxkj(
        User_id int primary key,
        user_name varchar(20),
        user_sexchar(7));

2>设置多个字段做主键
   举例:   

 create table sxkj2(
        user_id int ,
        user_name float,
        grade float,
          primary key(user_id,user_name));

3>设置表的外键:
     外键是表的一个特别字段,假如aa是B表的一个属性且依靠于A表的主键,那末A表被称为父表。B表为被称为子表,
   举例申明:
       user_id 是A 表的主键,aa 是B表的外键,那末user_id的值为zhangsan,假如这个zhangsan去职了,须要从A表中删除,那末B表关于 zhangsan的信息也该获得响应的删除,如许能够保证信息的完全性。
    语法:
        constraint外键别号 foreign key(外键字段1,外键字段2)
        references 表名(关联的主键字段1,主键字段2)

(1) yy1表存储了zhangsan姓名和ID号
        create table yy1(
            user_id int primary key not null,
            user_name varchar(20));

(2) yy2表存储了ID号和zhangsan的岁数(old)            

 create table yy2(
                    user_id int primary key not null,
                    old int(5),
                    constraint y_fk foreign key(user_id)
                    references yy1(user_id)on delete cascade on update cascade);


(3)数据添补yy1和yy2表          

 insert into yy1 values('110','zhangsan');
              insert into yy2 values('110','30');


(4)更新测试:

           update yy1 set user_id='120' where user_name='zhangsan';
         查询考证
           select * from yy2;


(5)删除测试:         

delete from yy1 where user_id='120';
        查询考证
          select * from yy2;


4>设置表的非空值
      语法:属性名数据范例 NOT NULL
      举例:        

 create table C(
                  user_id int NOT NULL);

5> 设置表的唯一性束缚
     唯一性指的就是一切记载中该字段。不能反复涌现。
    语法:属性名数据范例 unique
    举例:      

 root@zytest 15:43>create table D(
                                                      ->user_id int unique);
                root@zytest 15:44>show create table D;

6>设置表的属性值自动增添
       Auto_increment 是Mysql数据库中特别的束缚前提,它的作用是向表中插进去数据时自动生成唯一的ID,一个表只能有一个字段运用 auto_increment 束缚,必需是唯一的;
    语法:属性名数据范例 auto_increment,默许该字段的值从1最先自增。
    举例:
      

create table F( user_id int primary key auto_increment);
               root@zytest 15:56>insert into F values();插进去一条空的信息
               Query OK, 1 row affected, 1 warning (0.00 sec)
               root@zytest 15:56>select * from F;值自动从1最先自增
               +---------+
               | user_id |
                +---------+
              |       1 |
              +---------+
              1 row in set (0.01 sec)

7>、设置表的默许值
        在建立表时,能够指定表中的字段的默许值,假如插进去一条新的记载时,没有给这个字段赋值,那末数据库会自动的给这个字段插进去一个默许 值,字段的默许值用default来设置。
      语法: 属性名数据范例 default 默许值
      举例:        

 root@zytest 16:05>create table G(
                           user_id int primary key auto_increment,
                           user_name varchar(20) default 'zero');
                   root@zytest 16:05>insert into G values('','');

        插进去数据,应为ID为自增,值为空,user_name设置了默许值,所以也为空。

3》检察表构造的要领:
   DESCRIBE能够检察那表的基础定义,包含、字段称号,字段的数据范例,是不是为主键以及默许值等。。
  (1)语法:describe 表名;能够缩写为desc
  (2) show create table查询表细致的构造语句,
    1>修正表名
      语法:alter table 旧表名 rename 新表名;
      举例;        

 root@zytest 16:11>alter table A rename zyA;
                  Query OK, 0 rows affected (0.02 sec)

    2>修正表的数据范例
      语法:alter table 表名 modify 属性名 数据范例;
      举例;         

root@zytest 16:15>alter table A modify user_name double;
                 Query OK, 0 rows affected (0.18 sec)

    3>修正表的字段称号
      语法: alter table 表名 change 旧属性名 新属性名 新数据范例;         

  root@zytest 16:15>alter table A change user_name user_zyname float;
                 Query OK, 0 rows affected (0.10 sec)

4>修正增添字段       

 alter table 表名 ADD 属性名1  数据范例 [完全性束缚前提] [FIRST |AFTER 属性名2]

      v 增添没有束缚前提的字段:       

  root@zytest 16:18>alter table A add phone varchar(20);
                 Query OK, 0 rows affected (0.13 sec)

      v 增添有完全束缚前提的字段         

root@zytest 16:42>alter table A add age int(4) not null;
                 Query OK, 0 rows affected (0.13 sec)

      v 在表的第一个位置增添字段默许状况每次增添的字段。都在表的末了。         

root@zytest 16:45>alter table tt add num int(8) primary key first;
                 Query OK, 1 row affected (0.12 sec)
                 Records: 1  Duplicates: 0  Warnings: 0

      v 实行在那个位置插进去新的字段,在phone背面增添        

 root@zytest 16:46>alter table A add address varchar(30) not null after phone;
                   Query OK, 0 rows affected (0.10 sec)
                   Records: 0  Duplicates: 0  Warnings: 0

   总结:
    (1) 默许ADD 增添字段是在末了面增添
    (2) 假如想在表的最前端增添字段用first关键字
    (3) 假如想在某一个字段背面增添的新的字段,运用after关键字
  5>删除一个字段
    alter table 表名DROP 属性名;
    举例: 删除A 表的age字段       

root@zytest 16:51>alter table A drop age;   
             Query OK, 0 rows affected (0.11 sec)
             Records: 0  Duplicates: 0  Warnings: 0  

  6>变动表的存储引擎     

  alter  table表名 engine=存储引擎
              alter table A engine=MyISAM;

  7>删除表的外键束缚      

 alter table 表名drop foreign key 外键别号;
              alter table  yy2  drop foreign key  y_fk;

4》删除表的要领

    1>删除没有被关联的一般表
      drop table 表名;
    2>删除被别的表关联的父表
       在数据库中某些表之间建立了一些关联关联。一些成为了父表,被其子表关联,要删除这些父表,就不是那末简朴了。删除要领,先删除所关联的 子表的外键,在删除主表。

以上就是Mysql相干操纵有哪些的细致内容,更多请关注ki4网别的相干文章!

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

公众号二维码

微信公众号