必赢365net手机版:MySQL

必赢365net手机版 6

一:Mysql安装

       #yum install mysql

  #yum install mysql-server

  #yum install
mysql-devel

 
 
 启动mysql

  #service mysqld start

  验证安装

      #mysql –version

  设置数据库登陆密码

  #mysqladmin -u root password “new_password“;

  密码登陆

  # mysql
-u root -p 

     Enter
password:*******

二:Mysql管理

  添加用户   
  # mysql -u root -p
  mysql> use mysql;
  mysql> INSERT INTO user (host, user, password,select_priv, insert_priv, update_priv)VALUES ('localhost', 'guest',PASSWORD('guest123'), 'Y', 'Y', 'Y');
  mysql> FLUSH PRIVILEGES;
  注意:PASSWORD() 函数来对密码进行加密。 你可以在以上实例看到用户密码加密后为: 6f8c114b58f2ce9e.
  注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。
  
  配置文件
  mysql配置文件在/etc/my.cnf 

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

 管理mysql命令

mysql> use RUNOOB;

mysql> SHOW DATABASES;

mysql> SHOW TABLES;

      root密码重新复苏设置

#vim /etc/my.cnf

     
 在[mysqld]下增添skip-grant-tables,然后保留并退出

    重启mysql服务:service mysqld
restart

三:Mysql连接

连接
# mysql -u root -p
退出
mysql> exit

四:Mysql管理数据库

  始建数据库

  # mysqladmin -u root -p create
RUNOOB

  除去数据库

  #mysqladmin -u root -p drop
RUNOOB

  备份数据库

  #mysqldump -uroot -p -h127.0.0.1 –opt
mysql  > mysql.sql

  更正数据库密码

  mysqladmin -u root password
“新密码”; 

五:数据类型

  大约能够分成三类:数值、日期/时间和字符串(字符)类型。

       
tinyint、smallint、mediumint、int、bigint、float、double、decimal

    数值

   必赢365net手机版 1

   日期/时间

          data、time、year、datetime、timestamp

    必赢365net手机版 2

   字符串

  
char、varchar、tinyblob、tinytext、blob、text、mediumblob、mediumtext、longblob、longtext

 
 必赢365net手机版 3

  最大整数:bigint

  最大字符串:longtext

六:表的增、删、查、改

6.1创建

CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
 )ENGINE=InnoDB DEFAULT CHARSET=utf8;

create table yy5(id int,name varchar(20));

  解析:

      假设你不想字段为 NULL 能够设置字段的脾气为 NOT
NULL
, 在操作数据库时假诺输入该字段的数目为NULL ,就能报错。

      AUTO_INCREMENT概念列为自增的性质,平时用于主键,数值会自动加1。

      PRIMARY
KEY
第一字用于定义列为主键。
您能够利用多列来定义主键,列间以逗号分隔。

      ENGINE
设置存款和储蓄引擎,CHAEvoqueSET 设置编码。

6.2删除

      DROP TABLE test;

           DELETE FROM runoob_tbl WHERE runoob_id=3;

6.3查询

          select * from runoob_tbl;

6.4修改

     增加:

                  INSERT INTO
runoob_tbl
      (runoob_title, runoob_author, submission_date)
      VALUES
      (“学习mysql”,”mysql”,NOW());

                  修改:

           UPDATE runoob_tbl SET runoob_title=’学习
C++’ WHERE runoob_id=3;

 七:LIKE 子句

     7.1查询user表中姓名中包含“王”字的:

        select * from user where name like ‘%王%’;

     7.2查询user表中姓名中没有“王”字的:

        select * from user where name not like ‘%王%’;

     7.3查询user中姓名以“王”开头的:

        select * from user where name not like ‘王%’;

                  7.4查询user中姓名以“王”结尾的:

        select * from user where name not like ‘%王‘;

     7.5查询user表中地址在香水之都姓名中从未“王”字和具备人名字为空的:

        select * from user where adress =‘上海’ and name not
like ‘%王%’ or name is null;

     7.6查询user表中地址在北京姓名中未有“王”字和地址在东京姓名称为空的:

        select * from user where adress =‘上海’ and (name
not like ‘%王%’ or name is null);

八:union

    必赢365net手机版 4

    必赢365net手机版 5 

    8.1求三个table某列的插花

      SELECT country FROM Websites
      UNION
      SELECT country FROM apps
      ORDER BY country;

    8.2求七个table某列的并集

      SELECT country FROM Websites
      UNION ALL
      SELECT country FROM apps
      ORDER BY country;

九:排序-order by

      SELECT * from runoob_tbl ORDER BY submission_date ASC;           

      SELECT * from runoob_tbl ORDER BY submission_date DESC;

十:分组-group by

      GROUP
BY 语句依据三个或多少个列对结果集举办分组。

      在分组的列上大家得以应用 COUNT, SUM, AVG,等函数。

      必赢365net手机版 6     

      mysql> SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;
      +--------+----------+
      | name   | COUNT(*) |
      +--------+----------+
      | 小丽    |        1 |
      | 小明    |        3 |
      | 小王    |        2 |
      +--------+----------+
      3 rows in set (0.01 sec)

十一:INNER JOIN

    Mysql和JOIN来拓宽多连接

    JOIN 依照职能大约分为如下三类:

      INNE奥迪Q3 JION:内三番五遍只怕等值连接

      LEFT  JION:左连接

      RIGHT JION:右连接

    1: INNER JOIN 

                      SELECT

       a.runoob_id, a.runoob_author, b.runoob_count

       FROM

       runoob_tbl a INNER JOIN tcount_tbl b

       **ON**

       a.runoob_author = b.runoob_author;

      
等价于——————————————————-

       SELECT

        a.runoob_id, a.runoob_author, b.runoob_count

        **FROM**

        runoob_tbl
a, tcount_tbl b

        WHERE

        a.runoob_author = b.runoob_author;

    2: **LEFT
JOIN**

      SELECT 
      a.runoob_id, a.runoob_author, b.runoob_count  
      FROM      
      runoob_tbl a LEFT JOIN tcount_tbl b 
      ON 
      a.runoob_author = b.runoob_author;

十二:Null空值

       mysql>
SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;

       mysql>
SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL;

十九:正则表达式

      MySQL中动用 REGEXP 操作符来进行正则表明式相配。

       1:搜索字符串中以”st”初步的字符串

        mysql>
SELECT
name FROM
person_tbl WHERE name REGEXP
**
‘^st’**;

      
2:找寻字符串中以“st”结束的字符串

        mysql> SELECT name FROM person_tbl WHERE name REGEXP **‘ok$’**;

      
3:寻找字符串中带有’mar’的字符串

        mysql> SELECT name FROM person_tbl WHERE name REGEXP **‘mar’**;

十四:事务

       日常说来,事务满意七个规范(ACID卡塔尔:Atomicity(原子性卡塔尔、Consistency(稳固性卡塔尔、Isolation(隔开性卡塔尔国、Durability(可信赖性卡塔尔

        1:事务的原子性:风度翩翩组专门的学业要么成功,要么战败。

        2:牢固性:有越轨数据(外键限制卡塔 尔(阿拉伯语:قطر‎,事务撤回。

        3:隔断性:事务独立运作,独立撤回。

       
       4:可信赖性:软硬件崩溃后,InnoDB回借助日志问价实行重构。

      职业调整语句

        1:开启事务:begin也许start transaction

        2:提交业务:commit大概commit
work,但双方不等价,commit会对数据库举办到底改革。

        3:rollback:回滚客户提交的多少,并开展悬停正在进展的

        4:SAVEPOINT
identifier:事务保存点,叁个事情可以具有多个保存点,

        5:RELEASE SAVEPOINT
identifier;删除多个业务的保存点,当未有一些名的保存点时,试行该语句会抛出二个不胜;

        6:ROLLBACK TO identifier:把事情回滚到标志点;

        7:SET
TRANSACTION;用来设置专门的学问的割裂等级。InnoDB存款和储蓄引擎提供工作的隔绝品级有READ
UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SEEscortIALIZABLE。

        MYSQL 事务管理首要有两种艺术:

        1、用 BEGIN, ROLLBACK, COMMIT来实现

          BEGIN 起首三个业务

          ROLLBACK 事务回滚

          COMMIT 事务确认

      2、直接用 SET 来改换 MySQL 的全自动提交格局:

          SET AUTOCOMMIT=0 禁绝自动提交

          SET AUTOCOMMIT=1 开启自动提交

十五:ALTER命令

       1:ALTE福睿斯 TABLE 语句插入删除

        删除:ALTER TABLE testalter_tbl DROP i;

          增加: ALTER TABLE testalter_tbl ADD i INT;

        修正字段类型:

          
modify:**ALTER TABLE testalter_tbl MODIFY** c CHA路虎极光(10);   
修正c的档案的次序为char(10卡塔尔国

          
change:**ALTER TABLE testalter_tbl CHANGE** i j BIGINT;

        改革字段私下认可值:

         
 ALTER
TABLE
testalter_tbl
ALTER
i SET DEFAULT
1000;

        删除字段暗许值:

          ALTER TABLE
testalter_tbl ALTER i DROP DEFAULT;

        改正表名:

          alert table testalert_tbl rename to alter_test;

十六:索引

 

十七:临时表

        创设一时表:      

            CREATE TEMPORARY
TABLE
SalesSummary (
              product_name VARCHAR(50) NOT NULL
              , total_sales DECIMAL(12,2) NOT NULL
DEFAULT 0.00
              , avg_unit_price DECIMAL(7,2) NOT NULL
DEFAULT 0.00
              , total_units_sold INT UNSIGNED NOT NULL
DEFAULT 0
            );

        订正有时表:           

            INSERT
INTO
SalesSummary
              (product_name, total_sales,
avg_unit_price, total_units_sold)
              VALUES
              (‘cucumber’, 100.25, 90, 2);

        查询一时表:       

            SELECT * FROM SalesSummary;
        删除临时表:
            DROP TABLE SalesSummary;

十八:复制表

         1:执行SHOW CREATE TABLE runoob_tbl G;获得创造runoob_tbl 的语句

       
 2:实行创立runoob_tbl 的口舌,并改善表名

        
3:将原表中的数据select复制过来

十九:元数据

        SELECT VECRUISERSION( )           服务器版本音信
        SELECT DATABASE( )        当前数据库名 (大概再次回到空)
        SELECT USE冠道( )                 当前客户名
        SHOW STATUS         服务器状态
        SHOW VA奔驰M级IABLES             服务器配置变量

          

四十:种类使用

         1:auto_increment自增

           id INT  AUTO_INCREMENT,

        2:重新复苏设置连串

          假诺剔除了自增的id部分值,则剩下的id不是三番五次的,如何设置为接连几日来          

          mysql> ALTER TABLE insect DROP id;    
          mysql> ALTER TABLE insect
              -> ADD id INT AUTO_INCREMENT FIRST,
              -> ADD PRIMARY KEY (id);
       3:设置ip的起始值
          ALTER TABLE t AUTO_INCREMENT = 100;

 

三十后生可畏:管理重复数据

        1:幸免重复数据的法子有设置主键和独一索引

           设置双主键         

         CREATE TABLE person_tbl
          (
           first_name CHAR(20) NOT NULL,
           last_name CHAR(20) NOT NULL,
           sex CHAR(10),
           PRIMARY KEY (last_name, first_name)
        );
          唯一索引

         CREATE TABLE person_tbl
         (
          first_name CHAR(20) NOT NULL,
          last_name CHAR(20) NOT NULL,
          sex CHAR(10)
          UNIQUE (last_name, first_name)
         );

           2:统计重复数据

          SELECT COUNT(*) as repetitions,
last_name,fist_name
          from person_tbl
          GROUP BY lst_name, fist_name
          HAVING
repetitons >1;

       3:过滤重复数据

         方法1;distinct

          select distinct last_name, fist_name from person_tbl;

        方法2:grop
by

         select last_name,
fist_name from person_tbl  GROUP BY
(last_name, first_name);

六十一:MySQL导入出多少

        1:select into outfile语句

        select * from user_img into outfile
“/tmp/mysqluser.txt”;

        会冒出权力报错:EENCORERO宝马X3 1290 (HY000): The MySQL server is
running with the –secure-file-priv option so it cannot execute this
statement

        因为导出只好导出到明确文件中

        mysql> show global variables like ‘%secure%’;

        进行查看:

               +———————-+—————————+

        | Variable_name  | Value                       | 
        +——————- -+—————————+
        | secure_auth      | ON                           |
        | secure_file_priv | /var/lib/mysql-files/- |
        +———————+—————————+

        可以预知我当地的文书只好复制到/var/lib/mysql-files/目录下      

        mysql> select * from user_img into outfile
“/var/lib/mysql-files/user_img.txt”;
           Query OK, 0 rows affected (0.11 sec)

        导出为csv格式

        mysql> SELECT * INTO OUTFILE
‘/var/lib/mysql-files/user_1.txt’ FIELDS TERMINATED BY ‘,’ OPTIONALLY
ENCLOSED BY ‘”‘ LINES TERMINATED BY ‘n’ FROM user;
            Query OK, 2 rows affected (0.00 sec)

        mysqldump导出多少做备份

        #mysqldump -uroot -p -h127.0.0.1 –opt xserver >
xserver.sql

        将备份的多少导入到数据库

        mysql -u用户名
-p -h127.0.0.1
–default-character-set=utf8 数据库 < 需求导入的数据库文件.sql

 

七十四:Mysql开首化root密码和允许远程访问

 

 

 

  mysql私下认可root顾客并未密码,输入mysql –u root 步向mysql

 

  1、初始化root密码

 

  进入mysql数据库

mysql>use mysql;
mysql>update user set password=PASSWORD('123456') where User='root';

   

  2、允许mysql远程访谈,能够使用以下三种办法:

 

  a、改表。

mysql -u root –p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user; 

 

  b、授权。

 

诸如,你想root使用123456从别的主机连接到mysql服务器。

 

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

  

 

只要您想同意顾客jack从ip为10.10.50.127的主机连接到mysql服务器,并应用654321看作密码

 

mysql>GRANT ALL PRIVILEGES ON *.* TO 'jack'@’10.10.50.127’ IDENTIFIED BY '654321' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

  

 

c:在安装mysql的机械上运转:

 

//进入MySQL服务器
d:mysqlbin>mysql -h localhost -u root
//赋予任何主机访问数据的权限
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
//使修改生效
mysql>FLUSH PRIVILEGES
//退出MySQL服务器
mysql>EXIT

  

 

Leave a Comment.