mysql

作者: 徐卜灵 | 来源:发表于2019-04-16 18:55 被阅读0次

mysql管理

  • show databases;-- 注意:结尾有s
  • use database;
  • show tables;
  • show columns from 数据表;
  • show index from 数据表;
  • show grants; -查看自己的权限
  • show grants for xb@192.168.20.5; -- 查看其他人的权限

添加用户

  • CREATE USER 'laowang'@'localhost' IDENTIFIED BY '123456';

赋予权限

  • grant all privileges on * . * to '用户名'@'%' IDENTIFIED by 'password';
  • flush privileges;
  • 格式:grant all privileges on 数据库名.表名 to '用户名'@'主机名' IDENTIFIED by 'password'; 之后需要刷新一下权限。*.* 表示所有权限,% 表示所有主机,包括远程主机和本地主机(localhost)。

mysql创建、删除、选择数据库

  • 创建
    • create database test_db;
    • CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  • 删除
    • drop database test_db;
  • 选择
    • use test_db;

mysql 数据类型

主要分为三大类:数值、字符串、日期。

  • 数值类型

    • tinyint 1字节
    • smallint 2字节
    • mediumint 3字节
    • int 4字节
    • bigint 8字节
    • float 4字节
    • double 8字节
  • 字符串类型

    • char 定长字符串
    • varchar 变长字符串
    • tinyblob 二进制字符串
    • tinytext 短文本字符串
    • blob 二进制形式的长文本数据
    • text 长文本数据
    • mediumblob
    • mediumtext
    • longblob
    • longtext
  • 日期类型

    • date 3字节 2019-04-16
    • time 3字节 HH:MM:SS
    • year 1字节 YYYY
    • datetime 8字节 YYYY-MM-DD HH:MM:SS
    • timestamp 4字节 YYYYMMDD HHMMSS
  • PS:

    • UTF-8:一个汉字=3个字节
    • GBK:一个汉字=2个字节

mysql 创建、删除、修改

创建

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;

删除

  • 删除整个表
    • drop table 表名;
  • 删除表内数据,保留表结构
    • truncate table 表名;
  • 删除表内数据
    • delete from 表名 where 删除条件;

插入数据

INSERT INTO table_name
( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
  • 向表的全部字段插入数据时,field字段可以不用写,但要按顺序添加。

查询

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
  • where 子句
    • =
    • !=
    • >
    • <
    • >=
    • <=
  • update
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

UPDATE table_name SET field=REPLACE(field, 'old-string', 'new-string')
[WHERE Clause]
  • like
    • '%a' //以a结尾的数据
    • 'a%' //以a开头的数据
    • '%a%' //含有a的数据
    • '_a_' //三位且中间字母是a的
    • '_a' //两位且结尾字母是a的
    • 'a_' //两位且开头字母是a的
  • 排序
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
  • groupby
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
  • 索引

使用ALTER 命令添加和删除索引
有四种方式来添加数据表的索引:

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list)

    • 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
  • ALTER TABLE tbl_name ADD UNIQUE index_name
    (column_list)

    • 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
  • ALTER TABLE tbl_name ADD INDEX index_name (column_list)

    • 添加普通索引,索引值可出现多次。
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list)

    • 该语句指定了索引为 FULLTEXT ,用于全文索引。
  • 临时表

临时表在当前连接有效,当断开当前连接时,表会自动销毁。
creat temporary table 表名...
只是增加了个关键词 temporary

  • 导出数据
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;

相关文章

网友评论

      本文标题:mysql

      本文链接:https://www.haomeiwen.com/subject/gvjiwqtx.html