使用数据库MySQL|Ubuntu环境 命令行

1. 开始使用

如何安装MySQL


终端输入命令,输入密码登陆

mysql -u root -p

进入mysql>状态

几个命令(注意都有分号)

//显示所有数据库
SHOW DATABASES;
//打开某个数据库
USE DATABASES_name;
//创建数据库
CREATE DATABASE DATABASES_name;
//删除数据库
DROP DATABASE DATABASES_name;
//显示所有表
SHOW TABLES;
//删除表
DROP TABLE table_name;
//显示表的描述,  字段名称,类型,是否为主键等
DESC table_name;
SHOW COLUMNS from table_name;

2. MySQL 数据类型

3. SQL语法

1. 创建数据表 CREATE TABLE

语法
CREATE TABLE table_name (column_name column_type);

CREATE TABLE <表名>
(
	<列名> <数据类型>[ <列级完整性约束条件> ]
	[,<列名> <数据类型>[ <列级完整性约束条件>] ][,<表级完整性约束条件> ]
);

CREATE TABLE Student
 (Sno CHAR(5) NOT NULL UNIQUE, 
 Sname CHAR(20) UNIQUE, 
 Ssex CHAR(1) ,
 Sage SMALLINT,
 Sdept CHAR(15),
 Scholarship CHAR(2));
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;

如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码。

2. 修改基本表

  • 语句格式:
ALTER TABLE <表名>
	[ ADD[COLUMN] <新列名> <数据类型> [ 完整性约束 ] ]
	[ ADD <表级完整性约束>]
	[ DROP [ COLUMN ] <列名> [CASCADE| RESTRICT] ]
	[ DROP CONSTRAINT<完整性约束名>[ RESTRICT | CASCADE ] ]
	[ALTER COLUMN <列名><数据类型> ] ;
  • <表名>是要修改的基本表
  • ADD子句用于增加新列、新的列级完整性约束条件和新的表级完整性约束条件
  • DROP COLUMN子句用于删除表中的列
    如果指定了CASCADE短语,则自动删除引用了该列的其他对象
    如果指定了RESTRICT短语,则如果该列被其他对象引用,关系数据库管理系统将拒绝删除该列
  • DROP CONSTRAINT子句用于删除指定的完整性约束条件
  • ALTER COLUMN子句用于修改原有的列定义,包括修改列名和数据类型

具体的命令

ALTER TABLE table_name DROP field_name;//删除
ALTER TABLE table_name ADD new_field_name field_type;//添加
//如果你需要指定新增字段的位置,可以使用MySQL提供的关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)。
ALTER TABLE table_name MODIFY field_name new_field_type;//MODIFY  修改 数据类型
ALTER TABLE table_name CHANGE field_name new_field_name new_field_type;//CHANGE 修改字段名

ALTER TABLE 对 Null 值和默认值的影响

3. 插入数据

一次插入一条数据(一行)

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

insert into table_name values(value1, value2,...valueN);

多行

INSERT INTO table_name  (field1, field2,...fieldN)  
                        VALUES  
                        (valueA1,valueA2,...valueAN),
                        (valueB1,valueB2,...valueBN),
                        (valueC1,valueC2,...valueCN),
                        ......;

第一列如果没有设置主键自增(PRINARY KEY AUTO_INCREMENT)的话添加第一列数据比较容易错乱,要不断的查询表看数据。
如果添加过主键自增(PRINARY KEY AUTO_INCREMENT)第一列在增加数据的时候,可以写为0或者null,这样添加数据可以自增, 从而可以添加全部数据,而不用特意规定那几列添加数据。

4. Update 语句和 Delete 语句

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
DELETE FROM table_name [WHERE Clause]

5. 创建和删除索引

CREATE UNIQUE INDEX Stusno ON Student(Sno);
CREATE UNIQUE INDEX Coucno ON Course(Cno);
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);
DROP INDEX Stusno;

6. 查询数据

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

others

禁用外键约束
SET FOREIGN_KEY_CHECKS=0;


go不是Transact-SQL语句,而是osql和isql 实用工具及SQL Server 查询分析器才能识别的命令。
go其实就是个分隔符,将语句分隔开,但go又不仅仅是个分隔符,比如你给的代码,如果没有g0有可能会执行出错,究其原因,主要是因为其前后的语句是两个独立的事务。
go语句分隔的部分会被分别编译为两个执行计划。


https://zhuanlan.zhihu.com/p/449975942
show table status like ‘user’ \G
\G 的作用:是将查到的结构旋转90度变成纵向

Name
表名
Engine
表的存储引擎,在旧版本中,该列的名字叫做 Type,而不是 Engine。
Version
表的 .frm 文件的版本号。
Row_format
行的格式。对于 MyISAM 表,可选的值为 Dynamic、Fixed 或者 Compressed。
Dynamic 的行长度是可变的,一般包含可变长度的字段,如 VARCHAR 或者 BLOB。
Fixed 的行长度则是固定的,值包含固定长度的列,如 CHAR 和 INTEGER。
Compressed 的行则只在压缩表中存在,压缩表是不能够修改的(除非先将表解除压缩,修改数据,然后再次压缩),压缩表可以极大的减少磁盘空间占用,一次也可以减少磁盘 I/O,从而提升查询性能。压缩表也支持索引,但索引也是只读的。
Rows
表中的行数。对于 MyISAM 和其他的一些存储引擎,该值是精确的,但对于 InnoDB,该值是估计值。
Avg_row_length
平均每行包含的字节数。
Data_length
表数据的大小(以字节为单位)。
Max_data_length
表数据的最大容量,该值和存储引擎有关。
Index_length
索引的大小(以字节为单位)。
Data_free
对于 MyISAM 表,表示已分配但目前没有使用的空间。这部分空间包括了之前删除的行,一级后续可以被 insert 利用到的空间。
Auto_increment
下一个 auto_increment 的值。
Create_time
表的创建时间。
Update_time
表数据的最后修改时间。
Check_time
使用 check table 命令货值 myisamchk 工具最后一次检查表的时间。
Collation
表默认字符集和字符列排序规则。
Checksum
如果启用,保存的是整个表的实时校验和。
Create_options
创建表指定的其他选项。
Comment
该列包含了一些其他的额外信息。对于 MyISAM 表,保存的是表在创建时带的注释。对于 InnoDB 表,则保存的是 InnoDB 表空间的剩余空间信息。如果是一个视图,则该列包含 “VIEW” 的文本字样。

你可能感兴趣的:(数据库,数据库,mysql)