数据库

 

 

一、进入数据库

命令:mysql -uroot -p 输入密码

如果进不去的话,可以在前面加一个sudo

sudo mysql -uroot -p

二、数据库操作

2.1、所有数据库

命令:show databases;

2.2、创建数据库

命令:create database 数据库名;

2.3、切换数据库

命令:use 数据库名;

2.4、查看前进入选择的是哪个数据库5

命令:select databases();

2.5、显示当前使用的数据库的所有的表

格式:show tables;

2.6、删除指定数据库

格式:drop database 数据库名;

三、数据库的表操作

3.1、创建表

命令: create table 表名(id int not null auto_increment primary key,

列名 类名 ...)engine=引擎 default charset=编码

(一般的电脑编码是rgb,苹果比较高级,是utf-8 所以避免出错,加一个 default charset=utf-8)引擎 innodb

char 字符串 varchar 可变字符串

null 允许为空 not null 还不允许为空

3.2、添加数据

insert into 表名 values (0,1,18,'tom',...)

3.3、修改表

先创建一个表:create table 表名(

sex bit not null,

age int

)engine=innodb default charset=uft8;

添加列:alter table 表名 add 列名 类型;

删除列:alter table 表名 drop column 列名;

修改列: alert table 表名 modify column 列名 类型;

添加主键 key alter table 表名 add primary(列名);

删除主键 alter table 表名 drop primary key;

4、操作表

4.1、查看当前数据库中所有的表

show tables;

4.2、查看表结构

desc 表名;

4.3、查看建表结构

横着看:show create table 表名;

竖着看:show create table 表名 \G;

4.4、重命名表名

rename table 原名 to 新表名;

4.5、清空表数据;

delete from 表名;

truncate table 表名;

4.6、删除表

drop table 表名;

5、查询表

5.1、查询所有员工和所有部门

select * from emp,dept;

 

 

数据库命令:

  • 进入 mysql 库;

    use mysql;

  • 查看用户权限

    select * from user where user='root' \G;

  • 创建数据库

    create database 数据库名;

  • 查看当前创建的数据库

    show create database 数据库名;

  • 查看所有数据库

    show databases;

  • 修改数据库

    alter database 库名 charset gbk;

  • 删除数据库

    drop database 库名;

  • 创建表

    create table 表名(id int, name char(10) );

  • 查看当前建立的表

    show create table 表名;

  • 查看所有表

    show tables;

  • 查看表结构

    describe 表名; 或者 desc 表名;

  • 修改表

    alter table 表名 modify name char(15)

  • 插入数据

    insert into 表名(id, name) values(1, '张飞')

  • 查询

    select * from 表名;

  • 修改信息

    update 表名 set name='章子怡' where id=1;

  • 删除数据

    delete from 表名 where id=1;

表字段 增删改操作

-- 新增字段
-- 在test_table 表的 valid_status 字段之后,新增一个字段,设置对应的类型,长度,是否为null,默认值,注释
ALTER TABLE Teacher ADD COLUMN `is_staff` TINYINT ( 2 ) NOT NULL DEFAULT '1' COMMENT '是否在职 0否 1是' AFTER `Tname`;
-- 修改一个字段的类型
ALTER TABLE Teacher ADD COLUMN gender CHAR ( 3 ) NOT NULL DEFAULT '女' COMMENT '性别' AFTER Tname;
-- 修改一个字段的名称,必须要指定该字段的类型
ALTER TABLE Teacher MODIFY gender VARCHAR ( 10 ) NOT NULL DEFAULT '男' COMMENT '性别--';
ALTER TABLE Teacher CHANGE is_staff staff TINYINT ( 3 ) NOT NULL DEFAULT '2' COMMENT '字段注释';
-- 删除字段
ALTER TABLE Teacher DROP COLUMN staff;

用户操作

  • 创建用户

指定 ip 范围

create user '用户名'@'192.168%' identified by "密码";

不指定 ip 范围

create user '用户名'@'%' identified by "密码";

  • 删除用户

drop user '用户名'@'ip地址';

  • 修改用户

rename suer '用户名'@'IP' to '新用户名'@'ip地址';

  • 修改密码

set password for '用户名'@'ip地址' = password("新密码")

  • 查看权限

show grants for '用户名'@'ip地址'

  • 用户授权

授权用户仅对 db1.t1 文件有增删改查操作

grant select \ insert \ updata on db1.t1 to '用户名'@'ip';

用户对所有文件有所有权限 除了 grant 命令

grant all privileges on ' * ' to '用户名'@'ip';

  • 远程连接

mysql -uzhang -p3306 -hIP地址 -p密码

复制表

  • 复制表结构 又复制记录

create table t2 select * from 库名.表名;

  • 只复制表结构

create table t2 select * from 库名.表名 where 1>3;

CREATE TABLE 新表 LIKE 旧表 ;

  • 复制旧表的数据到新表(假设两个表结构一样)

INSERT INTO 新表 SELECT * FROM 旧表

  • 复制旧表的数据到新表(假设两个表结构不一样)

INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

创建表

-- ----------------------------
DROP TABLE IF EXISTS `city`;  -- 如果数据库中 有 city 表就先 删除 再 创建
CREATE TABLE `city` (
  `city_id` smallint(5) unsigned NOT NULL auto_increment,
  `city` varchar(50) NOT NULL,
  `country_id` smallint(5) unsigned NOT NULL,
  -- 时间   在创建新记录和修改现有记录的时候都对这个数据列刷新
  `last_update` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,  
  PRIMARY KEY  (`city_id`),  -- 指定主键 
  KEY `idx_fk_country_id` (`country_id`),  -- 指定外键 
  CONSTRAINT `fk_city_country` FOREIGN KEY (`country_id`) REFERENCES `country` (`country_id`)  on delete restrict   ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;  -- 指定引擎  默认字符集

  • 查看表
  • desc 表名;

清空表

  • 如果有自增 新增的数据 以之前的值开始

    delete from 表名;

  • 删除快 从零开始

    truncate table 表名;

内置函数

  • 数学:

    abs(x)

posted @ 2021-06-03 20:11  测试小能手1  阅读(96)  评论(0编辑  收藏  举报