数据表

表结构的修改

荒凉一梦 提交于 2020-02-04 00:26:32
表结构的修改 当一张数据表已经正常建立完成了,后来发现,某些表少列,某些表列设计不合理… 所以提供有对象的修改操作,但是从开发来讲,不提倡数据表的修改操作。 在实际开发之中,为了方便数据库的使用,往往设计人员会给出一个数据库的脚本。这个脚本的后缀一般是“*.sql”。开发人员可以利用脚本对数据库进行快速的恢复。所以这个脚本一般会包含有如下几个内容: 删除原有的数据表; 重新创建新的数据表; 创建测试数据; 进行事务提交。 --删除数据表 DROP TABLE member PURGE; --清空回收站 PURGE RECYCLEBIN; --创建数据表 CREATE TABLE member( mid NUMBER, name VARCHAR2(20) ); --测试数据 INSERT INTO member(mid,name) values (1,'韩信'); INSERT INTO member(mid,name) values (2,'李白'); --提交事务 COMMIT; 下面基于这个脚本实现数据表的修改操作。 1.修改已有列 name 字段上没有默认值,每当增加新数据不指定name的时候内容就是null,希望提供默认值。 范例:修改member表中的name列定义 ALTER TABLE member modify (name VARCHAR2(30) DAFAULT

MySQL 5.7.13 常用基础命令

喜夏-厌秋 提交于 2020-02-04 00:17:36
MySQL 5.7.13 常用基础命令 前言 假设 用户命令 数据库命令 表命令(注意有无引号) 记录命令 前言 本文参考了 菜鸟教程MySQL 的部分内容,以及 @尘埃看世界的博客 的部分内容,再加上 度娘 还有 lewo的博客 部分内容和 我自己 实际学到的和实际运用且可用的MySQL5.7指令的内容整合。 大部分指令对于MySQL8+也是可以的。 假设 假设有用户 'root'@'%' 假设该用户有密码 12345678 假设该用户有数据库 chatroom 假设该数据库有表 existuser 假设该表有记录 (已删除id=2的记录) user_id username userpassword 1 wto 246810 3 kpl dj2602 4 lol 13579 5 dma 123fid 用户命令 注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string。 查询用户 查询所有用户 use mysql; select user, host from mysql.user; 查询用户(不重复) use mysql; select distinct user from mysql.user; 创建用户 create user '用户名'@'IP地址' identified by '密码'; (IP地址如果是本地就是

oracle——数据表的数据查询——oracle中的特殊表达式between and、in、like、is null、exists、all、some、any等

[亡魂溺海] 提交于 2020-02-04 00:11:07
sql查询 create table yuangong ( id number, name varchar2(50), zhiwei varchar2(50), age number, sex varchar2(20) ) tablespace test insert into yuangong values(1,'周磊01','操作工',21,'男'); insert into yuangong values(2,'周磊02','操作工',23,'女'); insert into yuangong values(3,'周磊03','操作工',22,'男'); insert into yuangong values(4,'周磊04','操作工',24,'女'); insert into yuangong values(5,'周磊05','操作工',26,'男'); insert into yuangong values(6,'周磊06','操作工',25,'女'); insert into yuangong values(7,'周磊07','操作工',29,'男'); insert into yuangong values(8,'周磊08','操作工',28,'女'); insert into yuangong values(9,'周磊09','操作工',27,'男');

oracle——数据表的数据查询——oracle高级函数

99封情书 提交于 2020-02-03 23:57:23
sql查询 oracle高级函数 create table yuangong ( id number, name varchar2(50), zhiwei varchar2(50), age number, sex varchar2(20) ) tablespace test insert into yuangong values(1,'周磊01','操作工',21,'男'); insert into yuangong values(2,'周磊02','操作工',21,'女'); insert into yuangong values(3,'周磊03','操作工',22,'男'); insert into yuangong values(4,'周磊04','操作工',24,'女'); insert into yuangong values(5,'周磊05','操作工',26,'男'); insert into yuangong values(6,'周磊06','操作工',24,'女'); insert into yuangong values(7,'周磊07','操作工',29,'男'); insert into yuangong values(8,'周磊08','操作工',22,'女'); insert into yuangong values(9,'周磊09','操作工',27

oracle——数据表的数据查询——distinct 关键字、group by 字句、having子句

会有一股神秘感。 提交于 2020-02-03 23:49:23
SQL查询 create table yuangong ( id number, name varchar2(50), zhiwei varchar2(50), age number, sex varchar2(20) ) tablespace test insert into yuangong values(1,'周磊01','操作工',21,'男'); insert into yuangong values(2,'周磊02','操作工',23,'女'); insert into yuangong values(3,'周磊03','操作工',22,'男'); insert into yuangong values(4,'周磊04','操作工',24,'女'); insert into yuangong values(5,'周磊05','操作工',26,'男'); insert into yuangong values(6,'周磊06','操作工',25,'女'); insert into yuangong values(7,'周磊07','操作工',29,'男'); insert into yuangong values(8,'周磊08','操作工',28,'女'); insert into yuangong values(9,'周磊09','操作工',27,'男');

Mysql 删除数据表的三种方式详解

自闭症网瘾萝莉.ら 提交于 2020-02-03 11:54:21
用法: 1、当你不再需要该表时, 用 drop; 2、当你仍要保留该表,但要删除所有记录时, 用 truncate; 3、当你要删除部分记录或者有可能会后悔的话, 用 delete。 删除程度可从强到弱如下排列: 1. drop table tb; drop 是直接将表格删除,无法找回。例如删除 user 表: drop table user; 2. truncate (table) tb; truncate 是删除表中所有数据,但不能与where一起使用; TRUNCATE TABLE user; 3. delete from tb (where); delete 也是删除表中数据,但可以与where连用,删除特定行; -- 删除表中所有数据 delete from user; -- 删除指定行 delete from user where username ='Tom'; truncate 和 delete 的区别: 1. 事物 truncate删除后不记录mysql日志,因此不可以rollback,更不可以恢复数据;而 delete 是可以 rollback ; 原因:truncate 相当于保留原mysql表的结果,重新创建了这个表,所有的状态都相当于新的,而delete的效果相当于一行行删除,所以可以rollback; 2. 效果 效率上 truncate 比

SQLite数据库---sql语句的基础使用

拥有回忆 提交于 2020-01-31 14:26:19
1.什么是SQLite数据库 SQLite数据库是一种轻量级的、嵌入式的、ACID数据库; **轻量级:**没有MySql、Oracle、SQL Server那么大,那么重量级 **嵌入式:**在手机内部的,可以导出 **ACID:**原子性(事务的处理要么一起执行,要么不执行)、一致性(事务使数据库的数据从一个状态到另一个状态)、隔离性(事务并发带来的问题,像脏读、不可重复读、幻读,通过隔离级别来避免,至少要避免脏读)、持久性(当事务提交之后,对数据库中的数据改变是永久性的) 2.SQLite数据库的优缺点 优点: (1)上边说到过的轻量级数据库就是优点之一,还有就是无需配置,高效; (2)动态数据类型:比如说在使用MySql数据库时,在创建表时,要确定每个字段的类型,int、varchar、date等等,在插入该表时,插入的数据要符合创建表时字段的类型;但是SQLite数据库不一样,如果第一次插入int类型数据,第二次插入String类型数据也是可以的。 缺点: (1)因为是单一文件,所以并发性能要差一些;因此在使用SQLite时,所有的表、索引等都是在同一个文件中,在并发查询多张表时效率就很低; (2)网络文件的存储。 3.SQLite数据库的用途 (1)APP运行时数据的保存 (2)离线功能:在没有网络的情况下,可以查看历史记录,将历史数据保存在SQLite数据库; (3

MySQL-死锁查询

大城市里の小女人 提交于 2020-01-30 23:20:31
1、查询是否锁表 show OPEN TABLES where In_use > 0; 查询到相对应的进程 === 然后 kill id 2、查询进程 show processlist 补充: 查看正在锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 查看等待锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 1 show processlist; SHOW PROCESSLIST显示哪些线程正在运行。您也可以使用mysqladmin processlist语句得到此信息。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。如果有线程在update或者insert 某个表,此时进程的status为updating 或者 sending data。 如果您得到“too many connections”错误信息,并且想要了解正在发生的情况,本语句是非常有用的。MySQL保留一个额外的连接,让拥有SUPER权限的账户使用,以确保管理员能够随时连接和检查系统(假设您没有把此权限给予所有的用户)。 Status 含义 Checking table 正在检查数据表(这是自动的)。 Closing

数据表连接(左连接,右连接,内连接,笛卡尔)

梦想的初衷 提交于 2020-01-30 02:36:27
--查询分析器中执行: --建表table1,table2: create table table1(id int,name varchar(10)) create table table2(id int,score int) insert into table1 select 1,'lee' insert into table1 select 2,'zhang' insert into table1 select 4,'wang' insert into table2 select 1,90 insert into table2 select 2,100 insert into table2 select 3,70 如表 ------------------------------------------------- table1|table2| ------------------------------------------------- idname|idscore| 1lee|190| 2zhang|2100| 4wang|370| ------------------------------------------------- 以下均在查询分析器中执行 一、外连接 1.概念:包括左向外联接、右向外联接或完整外部联接 2.左连接:left join 或 left

Linux下安装mysql

孤人 提交于 2020-01-30 02:14:57
1、Linux下安装mysql 通过以下链接安装的 https://www.jianshu.com/p/276d59cbc529 2、启动mysql sudo /usr/local/mysql/support-files/mysql.server start 3、登录mysql mysql -uroot -p1 4、创建一个数据库 create database test1; 4.1创建数据库时指定编码格式 create database if not exists test3 default character set 'UTF8'; 4.2 修改已有数据库的编码方式 alter database test3 default character set 'GBK'; 5、显示当前所有数据库 show databases; 5.2 查看数据库的详细信息 show create database test3; 6、若数据库不存在则创建并查看警告信息 create database if not exists test1; 7、查看上一步操作产生的警告信息 show warnings; 8、管理数据库 8.1、使用数据库时需要首先打开数据库 --test3:代表数据库的名字 use test3; 8.2 显示当前使用的是哪个数据库 select database(); 8.3