• MySQL常用语句


    MySQL常用指令

    修改表结构

    启动mysql服务

    #启动mysql服务,mysql55是安装MySQL服务器时指定的服务器名称
    net start mysql55
    #停止mysql服务
    net stop mysql55
    

    创建数据库

    #创建数据库							设置字符集			设置排序规则
    create database 数据库名 character set gb2312 collate gb2312_chinese_ci;
    
    #查看数据库服务器中存在的数据库
    show databases;
    
    #指定查看某个数据库信息
    show create database 数据库名;
    

    修改数据库

    #修改数据库字符集和排序规则
    alert database 数据库名 character set utf8 collate utf8_bin;
    

    删除数据库

    drop database 数据库名;
    

    创建和查看数据表

    #使用use语句设置当前数据库
    use 数据库名;
    
    #查看数据表
    show tables;
    
    #创建数据表
    create table 表名 (
    	字段定义1,
        字段定义2,
        。。。。。。
        字段定义n
    );
    
    #例如
    #primary key:主键 auto_increment:主键名称 comment:自增 用户ID:注释
    create table user (
    	uID int(11) primary key auto_increment comment '用户ID', 
        uName varchar(30) not null,
        uPwd varchar(30) not null,
        uSex enum('男','女') default '男'	#注意最后一行没有逗号
    );
    
    #查看表结构(方式一)
    desc 数据库名.表名;
    
    #查看表结构(方式二)
    desc 数据库名.表名G;
    

    修改表

    #修改表名
    alert table 原表名 rename 新表名;
    
    #修改字段
    alert table 表名 change 原字段名 新字段名 新数据类型;
    
    #只修改字段类型
    alert table 表名 modify 字段名 新数据类型;
    
    #修改字段的排列位置
    alert table 表名 modify 字段名1 数据类型 first|after 字段名2;
    
    #添加新字段
    alert table 表名 add 字段名 数据类型;
    
    #删除字段
    alert table 表名 drop 字段名;
    
    #修改表的存储引擎
    alert table 表名 engine=存储引擎名;
    

    复制表

    #复制表结构及数据到新表
    create table 新表名 select * from 原表名;
    
    #只复制表结构到新表
    create table 新表名 select * from 原表名 where false;
    
    #mysql 5.0后实现表结构复制还可以用like
    create table 新表名 like 原表名;
    
    #复制表的部分字段及数据到新表
    create table 新表名 as (select 字段1,字段2,.....from 原表名);
    

    删除表

    #删除表
    drop table 表名;
    
    #删除多张表
    drop table 表名1,表名2;
    

    修改表数据

    使用insert语句插入单条数据

    insert into 表名 [(字段列表)] values(值列表);
    
    insert into user values(1,'hello world');
    
    #向指定字段插入数据
    INSERT into user(uName,uPwd) values('张三','admin');
    

    使用REPLACE语句插入单条数据

    REPLACE INTO 表名[(字段列表)] values(值列表);
    
    REPLACE INTO user(uId,uName,uPwd) values(3,'张三','admin');
    

    使用INSERT语句插入多条语句

    INSERT INTO 表名[(字段列表)] values(值列表1)[(值列表2),...(值列表n)];
    
    #注意 插入的值必须对应前面的字段
    INSERT INTO user(uName,uSex,uPwd) values
    ('张三','男','admin'),
    ('李四','男','admin1'),
    ('法外狂徒','男','admin2');
    

    使用REPLACE语句插入多条语句

    REPLACE INTO user(uID,uName,uSex,uPwd) values
    (5,'张一','admin1'),
    (6,'张二','admin2'),
    (7,'张五','admin3');
    

    插入其它表数据

    INSERT INTO 目标数据表(字段列表一)
    SELECT 字段列表二 FROM 源数据表 WHERE 条件表达式; 
    

    INSERT语句的其他语法格式

    INSERT INTO 表名
    SET 字段名1=值1 [字段名2=值2,....]
    
    #字段顺序可以调整
    INSERT INTO user
    SET uName='admin',
    	uPwd='123',
    	uSex='男';
    

    修改数据

    UPDATE语句用于更新数据表中的数据

    UPDATE 表名
    SET 字段名1=值1,字段名2=值2 ...,字段名n=值n
    [where 条件表达式];
    
    #修改admin的密码
    UPDATE user
    SET uPwd = '456'
    where uName='admin';
    
    #修改数据表中所有的密码
    UPDATE user
    SET uPwd = '123';
    

    删除数据

    使用delete删除数据

    DELETE FROM 表名 [WHERE 条件表达式];
    
    #删除id为4的记录
    DELETE FROM user
    WHERE uID=4;
    
    #删除表中所有数据
    DELETE FROM user;
    

    使用TRUNCATE语句删除数据

    TRUNCATE [TABLE] 表名;
    
    #删除user表所有数据
    TRUNCATE user;
    

    DELETE和TRUNCATE语句都能删除表中所有数据,它们的区别:

    • DELETE语句可以实现带条件的数据删除,TRUNCATE只能清除表中记录
    • TRUNCATE语句清除表中数据后,再向表中插入数据时,自动增加的字段默认初始值从新从1开始;使用DELETE语句清除表中数据后,再向表中添加记录时,自增字段的值会从记录中该字段最大值加1开始编号。
    • 使用DELETE语句每删除一行记录都会记录在系统操作日志中,TRUNCATE语句清空数据时,不会在日志中记录删除内容,如要删除表中所有数据,TRUNCATE语句效率要高于DELETE语句。
  • 相关阅读:
    开源项目SMSS发开指南(四)——SSL/TLS加密通信详解(上)
    开源项目SMSS发开指南(三)——protobuf协议设计
    开源项目SMSS开发指南(二)——基于libevent的线程池
    开源项目SMSS开发指南
    萧瑟斩落叶,孤月伴影长
    TCP/IP和Socket开发经验分享
    Linux C++轻量级开发指南
    如何使用threejs实现第一人称视角的移动
    图形辅助,理解递归
    字节的游戏
  • 原文地址:https://www.cnblogs.com/striver20/p/13853391.html
Copyright © 2020-2023  润新知