MySQL学习笔记——基本语法

SQL——结构化查询语言(Structured Query Language)

 

1. SQL语言不区分大小写,建议关键字用大写,但是字符串常量区分大小写

2. SQL注释:

/**/多行注释
--单行注释
MySQL注释:#

3. 列出MySQL服务器主机上的数据库

SHOW DATABASES[LIKE wild];

4. 用给定的名字创建一个数据库

语法:CREATE DATABASE[IF NO EXISTS] 数据库名字  创建之后要刷新才能在列表中看见新建立的数据库

create database spring_user default character set utf8 collate utf8_general_ci;

 

5. 删除数据库中的所有表和数据

   语法:DROP DATABASE[IF NO EXISTS] 数据库名字

6. 把指定数据库作为默认(当前)数据库使用,用于后续语句

   语法:USE 数据库名字 

7. 数据库对象的命名规则:

   i>必须以字母开头

   ii>可包括数字和三个特殊字符(# _ $) 

   iii>不要使用MySQL的保留字

   iv>同一个schema下的对象不能同名

8. 建表语句CREATE TABLE [schema] 表的名字 (column datatype[DEFAULT expr],...) ENGINE = 存储机制

数据表的每行称为一条记录(record),每一列称为一个字段(field),主键列:唯一能够识别每条记录的列 

CREATE TABLE IF NOT EXISTS `t_user` (`username` varchar(64) NOT NULL,`password` varchar(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

 9. MySQL支持的列类型

i>数值类型
ii>日期/时间类型
iii>字符串(字符)类型 
整数:int或者integer
浮点:double
字符:char、varchar、blob、text

 

10. SHOW TABLES [FROM 数据库名字][LIKE wild]

    功能:显示当前数据库中已有的数据表的信息

11. CREATE TABLE 表的名字(

        列名 列类型,

        列名 列类型

    );

CREATE TABLE tb_dept( #创建一个部门表叫做tb_dept
 id INT PRIMARY KEY AUTO INCREMENT, #部门编号id,整型,primary key 主键
 NAME VARCHAR(18), #部门名称 name,字符,最多只能储存18个字符
 description VARCHAR(100) #描述description,字符,最多只能存储100个字符
);

  

12. description或者DESC 表名[列名]

功能:查看数据表中各列的信息

mysql> desc t_user;

 

13. 用ALTER TABLE语句修改表的结构

修改列类型  ALTER TABLE 表名 MODIFY 列名 列类型  注意:不是任何情况都可以修改,例如名字是char不能改成int

增加列  ALTER TABLE 表名 ADD 列名 列类型    注意:使用ADD子句增加字段,新的字段只能被加到整个表的最后

ALTER TABLE employees ADD gender CHAR(1);

删除列  ALTER TABLE 表名 DROP 列名 列类型

ALTER TABLE employees DROP gender CHAR(1);  #mysql特有
ALTER TABLE employees DROP COLUMN gender CHAR(1); #oracle

列改名  ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型

更改表名  ALTER TABLE 表名 RENAME 新表名

RENAME TABLE 表名 TO 新表名

 

14. 语法:DROP TABLE 表的名字

功能:删除表

 

15. 修改MySQL的密码

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

 

16. MySQL怎么取消错误的命令

    1.没办法的办法,ctrl+c,完全退出
    2.可以输入\c 废弃本次语句,若输入后没效果是因为未保持当前输入语句完整匹配

17. 自增id归1

TRUNCATE TABLE baike_pages;

 

18. 使用timestamp,并在修改的时候自动更新

将默认值设置为CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,并为NOT NULL

 

19. MYSQL数据导出,使用管道命令

mysql -uroot -pXXXX -e"select * from music.tencent_music" > /home/mi/下载/dump

也可以使用mysqldump

mysqldump -hlocalhost -uroot -p xxx_table > ./xxx_table_2020-04-20.bak

 

20.MYSQL查看表数据和索引所占的存储大小

select concat(round(sum(data_length/1024/1024),2),'MB') as data_length_MB,
    concat(round(sum(index_length/1024/1024),2),'MB') as index_length_MB
    from information_schema.tables where
    table_schema='xx_db'
    and table_name = 'xx_table';

结果

 

posted @ 2015-07-14 19:25  tonglin0325  阅读(210)  评论(0编辑  收藏  举报