本文记录我在学习使用MySQL的过程中遇到过的一些命令,持续更新。
1、mysql登陆命令。-h为登陆主机名,-u为登陆用户,-p为登陆密码,此三者后面可连写,也可有空格。若为本机登陆,可省略-h部分不写。密码可以明文输入于-p后面,也可在输入-p后不写密码,回车键密文输入,较为安全。
命令格式:mysql -h host -u username -p password
例:mysql -h localhost -u root -p 123456
2、新建数据库/表。数据库/表名称只能包含大小写英文字母(区分)、数字、下划线字符'_'三类,并且不超过64个字符。
命令格式:mysql> create database (if not exists) databasename;//创建数据库
例:mysql> create database database_001;
命令格式:mysql> create table (if not exists) tablename(columnname1 columntype1,...);//创建数据表
例:mysql> create table if not exists tb001(id int unsigned auto_increment,name varchar(12) not null,age tinyint not null,create_time datetime,primary key(id));
3、删除数据库/表。谨慎操作,一旦删除,此数据库/表中的所有数据消失。
命令格式:mysql> drop database databasename;//删除数据库
例:mysql> drop database database_001;
命令格式:mysql> drop table tablename;//删除数据表
例:mysql> drop table tb001;
4、使用某一个数据库。此命令后所有高于库精度的操作都是基于本库。
命令格式:mysql> use databasename;
例:mysql> use db_001;
5、展示库/表结构。
命令格式:mysql> show databases;//展示所有的数据库名
命令格式:mysql> show tables;//展示本库中所有数据表名
命令格式:mysql> desc tablename;//展示表结构,即表中定义的字段以及它们的基本类型和约束条件
例:mysql> desc tb001;
命令格式:mysql> show columns from tablename;//和命令desc tablename展示结果一样
例:mysql> show columns from tb001;
命令格式:mysql> show create table tablename;//展示你的创建表的语句,包括一些省略未写出来的东西
例:mysql> show create table tb001;
//下面待定
命令格式:mysql> desc table tablename;
例:mysql> desc table tb001;
6、插入数据。
命令格式:mysql> insert into tablename(column1,column2,...) values(value1,value2,...);
例:mysql> insert into tb001(name,age,create_time) values("张三",18,now());//char型值需要使用单/双引号,now()为mysql内置函数,生成当前时间
7、查询数据。column1,column2,...表示要得到的字段,可以为一个或者多个,使用逗号隔开,如果想得到全部字段,可用*表示;tablename1,tablename2,...表示要查询的数据表,可以为一个或者多个,使用逗号隔开,(经测试,多表查询是在多个表的笛卡尔积表内查询,因此查询字段或者参加条件判断的字段必须唯一);后面三个中括号,可省略不写,第一个where表示查询条件,第二个limit表示查询得到的结果最大条数,第三个offset表示查询偏移量,即从第几条数据开始查询,默认为0。
命令格式:mysql> select column1,column2,... from tablename1,tbalename2,... [where(...)] [limit m] [offset n];
例:mysql> select id,name,age from tb001 where(id=3 and name='jack' or age!=18) limit 10 offset 20;
8、更新数据。一些要求和上述查询数据相同。
命令格式:mysql> update tablename set column1=value1,column2=value2 [where(...)];
例:mysql> update tb001 set name='李四' where(name='张三');
例:mysql> update tb001 set id=id+1;//1、可以使用一些运算;2、对于一些不可重复的字段,如primary key,同时对他们改值不会跳错。
9、删除数据。当不限制条件时,整个表的数据将被删除。
命令格式:mysql> delete from tablename [where(...)];
例:mysql> delete from tb001 where(name="张三");
10、where 子句。where子句用于表示查询条件,一般的条件符号有‘>’、‘<’、‘>=’、‘<=’、‘=’、‘!=’、‘<>’等,where子句可以包含多个查询条件,每个查询条件可以用‘or’或者‘and’连接,多个查询条件并列遵循逻辑运算规则;where子句还可以使用‘like’关键字模糊查询,‘%’为0个或多个字符,‘_’为单个字符。
命令格式:where(column1=value1 and (column2>value2 or column3!=value3));
例:where(gender="男" or (class="3班" and score<80));//性别为男或者3班分数低于80的数据
命令格式:where(column like value);
例:where(class="3班" and name like "%伟%");//三班名字中带‘伟’的数据
11、truncate 命令。此命令可以删除数据表中的所有记录,与delete命令不同的是,此命令是完全删除。具体来说,有些数据表拥有一些auto_increment字段,truncate命令可以将这些字段归零,重新从1开始计数,而delete命令做不到这一点。
命令格式:truncate table tablename;
例:truncate table tb001;
对比delete语法:delete from tablename [where(...)];
12、alter命令。alter命令用于修改数据库、数据表各属性、字段等。
详情查询:https://www.runoob.com/mysql/mysql-alter.html