MySQL常用语句

2016-04-10  本文已影响0人  everKarma

1.数据库

--建立数据库并指定默认字符集
CREATE DATABASE `database_name` DEFAULT CHARACTER
SET utf8 COLLATE utf8_general_ci;

--删除数据库
DROP DATABASE `database_name`;

2.用户

--查看所有用户
SELECT * FROM mysql.user;

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

CREATE USER 'user'@'localhost' IDENTIFIED BY '123456'; --仅能从本机登陆,且密码为123456
CREATE USER 'user'@'192.168.1.101' IDENTIFIED BY '123456'; --仅能从192.168.1.101登陆
CREATE USER 'user'@'%' IDENTIFIED BY ''; --可从任意主机登陆,且不需要密码

--删除用户
DROP USER 'username'@'host';

3.授权

--授予用户增删改查及建立删除表的权限
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON databases_name.* to 'username'@'host';

--取消用户增删改查及建立删除表的权限
REVOKE SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON databases_name.* to 'username'@'host';

4.数据表

--建表示例
USE database_name;
SET NAMES utf8;
CREATE TABLE `table_name` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `var1` char(10) NOT NULL DEFAULT '' COMMENT 'xxxxxx',
    `var2` varchar(30) NOT NULL DEFAULT '' COMMENT 'xxxxxx',
    `var3` tinyint NOT NULL DEFAULT 0 COMMENT 'xxxxxx',
    `var4` bigint unsigned NOT NULL DEFAULT 0 COMMENT 'xxxxxx',
    `var5` decimal(6, 2) unsigned NOT NULL DEFAULT 0 COMMENT 'xxxxxx',
    `var6` date NOT NULL DEFAULT '1000-01-01' COMMENT 'xxxxxx',
    `var7` datetime NOT NULL DEFAULT '1000-01-01' COMMENT 'xxxxxx',
    `var8` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'xxxxxx',
    `var9` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'xxxxxx',
    PRIMARY KEY (`id`),
    KEY `idx_var1` (`var1`),
    UNIQUE KEY `uniq_var2` (`var2`),
    KEY `idx_var3_var4_var8` (`var3`, `var4`, `var8`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例表';

--删除表数据及表定义
DROP TABLE `table_name`;

5.增删改查

-- 插入
INSERT INTO `table_name` (`var1`, `var2`, `var3`)
VALUES
    ('xx1', 'xx1', 'xx1'),
    ('xx2', 'xx2', 'xx2'),
    ('xx3', 'xx3', 'xx3');

-- 查询
SELECT *
FROM `table_name`;

-- 更新
UPDATE `table_name`
SET var1 = var1 + 1;

-- 删除
DELETE FROM `table_name`;       --删除表中数据(可以where做定向删除,自增列不重置)
TRUNCATE TABLE `table_name`;    --删除表中数据(删除表中所有数据,自增列重置)

--存在更新,不存在添加
INSERT INTO `table_name` (`var1`, `var2`, `var3`)
VALUES
    ('xx1', 'xx2', 1) ON DUPLICATE KEY UPDATE var3 = var3 + 1;
上一篇下一篇

猜你喜欢

热点阅读