数据库分类,DDL

登录数据库

方法1:cmd

mysql -h hostname -P port -u username -p dbname
hostname : 联接的主机或者ip地址/域名,访问本地数据库可以省略
port : 端口号,访问本地数据库可以省略
-u username:登录的用户名
dbname: 链接的库名
-p: 回车输入密码

windows系统如果出现cmd窗口报错的情况,就需要把mysql的bin目录放到全局变量里面了。

查询数据库总表有几个
show databases;

方法2:软件登录

这步很简单,不赘述。

数据库语句分类

DDL(Data Definition Language)数据定义语言:用于定义数据库、表、字段等数据库对象的语言,例如CREATE、ALTER、DROP等。

DQL(Data Query Language,DQL)数据查询语言:用于查询数据库中的数据,例如SELECT语句。常见的DQL语句有:SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等。

DML(Data Manipulation Language)数据操作语言:用于操作数据库表中的数据的语言,例如SELECT、INSERT、UPDATE、DELETE等。

DCL(Data Control Language)数据控制语言:用于控制数据库用户访问权限的语言,例如GRANT、REVOKE等。

TCL(Transaction Control Language)事务控制语言:用于控制数据库事务的提交、回滚等操作的语言,例如COMMIT、ROLLBACK等

DDL(数据定义语言)

据说开发人员很少用DDL。

常用DDL操作

-- 查看所有的数据库名
show databases;
-- 在数据库当中查看所有的数据表名
show table;
-- 创建数据库
create database mydatabase DEFAULT CHARSET UTF8 COLLATE UTF8_GENERAL_CI;
-- 切换数据库
use mydatabase_02;
-- 删除数据库(判断是否存在再删)
drop database if exists mydatabase;


-- 创建数据表
create table stu_class(
id int;
name varchar(100);
class varchar(100);
);
-- 删除数据表(如果想要判断是否存在再删的话,参照上面的删库命令)
drop table stu_class;

CREATE创建语句

创建数据库对象。

概述

-- 语法:
CREATE object_type object_name (object_columns);

object_type:指定要创建的对象,如database,table,view,procedure,function
object_name:指定对象名称(取名字)
(object_columns):指定对象列/属性

例如创建名为stu_class的数据库列表:
create table stu_class (
stu_id int;
stu_name varchar(100);
stu_age int;
stu_height int;
);

简单说一下常用的:

库操作

-- 1.创建数据库
-- 操作1-指定字符集创建
CREATE DATABASE mydatabase
DEFAULT CHARSET UTF8
COLLATE UTF8_GENERAL_CI;
-- mydatabase 指定库名
-- UTF8 指定默认字符集
-- 指定字符集校对规则 UTF8_GENERAL_CI
-- 创建一个名为mydatabase的数据库,字符集

-- 当然,不想那么复杂也行,忽略字符集问题:
-- 操作2-简单创建数据库
CREATE DATABASE mydatabase;

-- 2.选择数据库
-- 选择数据库mydatabase进行操作
use mydatabase;

表操作

-- 1.创建数据表
create table stu_name (
字段名1 字段类型1 约束条件1,
字段名2 字段类型2 约束条件2,
...
字段名n 字段类型n 约束条件3
);

/*
数据类型

整数型数据类型: INT、INTEGER、TINYINT、SMALLINT、MEDIUMINT、BIGINT
小数型数据类型: FLOAT、DOUBLE、DECIMAL
字符串型数据类型: CHAR、VARCHAR、TEXT、BLOB、MEDIUMTEXT、MEDIUMBLOB、LONGTEXT、LONGBLOB
日期时间型数据类型: DATE、TIME、DATETIME、TIMESTAMP、YEAR


约束条件

PRIMARY KEY: 用于定义主键,保证表中每行数据的唯一性,且不允许为空。
UNIQUE: 用于定义唯一性约束,保证列中的数据唯一,但可以为空。
NOT NULL: 用于定义非空约束,保证列中的数据不为空。
DEFAULT: 用于设置默认值,当插入数据时没有指定值时,使用默认值。
CHECK: 用于设置检查约束,对数据进行检查。
FOREIGN KEY: 用于定义外键,将一个表中的列和另一个表中的列相关联。
*/


-- 2.查表定义
desc mytable;
show create table mytable \G;

ALTER修改语句

修改数据.

总述

ALTER object_type object_name alter_type (alter_specification);

object_type: 指定要修改对象的类型
object_name: 指定要修改对象的名称
alter_type : 指定修改的方式
(alter_specification):指定具体内容

alter table stu_class add stu_sex varchar(10);

细分

-- 修改表名称
-- 修改table_name为new_table_name
ALTER TABLE table_name RENAME TO new_table_name;

-- 修改字段名
-- 修改table_name表的字段名tasble_data为新的字段名new_table_data,且数据类型为data_type(注意,这是个必要参数)。
ALTER TABLE table_name CHANGE table_data new_table_data data_type;

-- 修改列的数据类型
-- 将table_name表中的table_data列的数据类型更新为DATATIME;
-- table_name 表名
-- table_data/column_name 列名
-- data_type 新数据类型
-- constraints 约束条件
ALTER TABLE table_name MODIFY COLUMN table_data data_type;
ALTER TABLE table_name ALTER COLUMN column_name SET DATA TYPE data_type;
ALTER TABLE table_name ALTER COLUMN column_name SET CONSTRAINTS constraints;

-- 添加新的列
-- 为table_name表添加新的列(字段)column_name,类型为data_type,constraints为列约束条件
ALTER TABLE table_name ADD COLUMN column_name data_type constraints;

-- 删除列
ALTER TABLE table_name DROP COLUMN column_name;

-- 修改索引名称
-- 将索引名称index_name更改为new_index_name;
ALTER INDEX index_name RENAME TO new_index_name;

-- 清空表
TRUNCATE TABLE table_name;