精华内容
下载资源
问答
  • MySQL数据库基本命令

    万次阅读 多人点赞 2021-06-22 15:46:13
    MySQL数据库基本命令一、概述数据库结构常用数据类型二、查看数据库结构查看当前服务器中的数据库查看数据库中包含的表查看表的结构(字段)三、SQL语句介绍四、创建及删除数据库和表(DDL)创建新的数据库创建新的...

    一、概述

    数据库结构

    数据库–>数据表–>行(记录):用来描述一个对象的信息
                  列(字段):用来描述对象的一个属性
    

    常用数据类型

    类型 说明
    int 整型
    float 单精度浮点-------4字节32位
    double 双精度浮点-------8字节64位
    char 固定长度的字符类型
    varchar 可变长度的字符类型
    text 文本
    image 图片
    decimal (5,2) 5个有效长度数字,小数点后面有2位

    补充
    char 最多能存放字符个数255个,char 如果存入数据的实际长度比指定长度要小,会补空格至指定长度;如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错。
    char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了

    varchar存储规则:
    4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)
    5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节。

    二、查看数据库结构

    查看当前服务器中的数据库

    SHOW DATABASES;		#不区分大小写,分号“;”表示结束
    

    1

    查看数据库中包含的表

    USE 数据库名;
    SHOW TABLES;
    

    2

    查看表的结构(字段)

    方法1
    USE 数据库名;
    可缩写成:DESC 表名;
    
    方法2
    DESCRIBE  数据库名.表名;
    

    3

    三、SQL语句介绍

    SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

    分类 说明
    DDL 数据定义语言,用于创建数据库对象,如库、表、索引等
    DML 数据操纵语言,用于对表中的数据进行管理
    DQL 数据查询语言,用于从数据表中查找符合条件的数据记录
    DCL 数据控制语言,用于设置或者更改数据库用户或角色权限

    四、创建及删除数据库和表(DDL)

    创建新的数据库

    CREATE DATABASE 数据库名;
    
    例如:create database arts;
    

    创1

    创建新的表

    CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
    
    #主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
    例:
    create database arts;
    use arts;
    create table star (id int not null,name char(20) not null,sex char(2),primary key (id));
    desc star;
    

    创2

    删除指定数据表

    如不用USE进入库中,则需加上数据库名
    DROP TABLE 数据库名.表名;				
    
    进入数据库,则直接加表名
    drop table 表名
    

    创3

    删除指定的数据库

    DROP DATABASE 数据库名;
    

    创4

    五、管理表中数据记录(DML)

    向数据表中插入新的数据记录

    INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);
    
    例:
    create database market;
    use market;
    
    create table star (id int(3) not null,name char(20),sex char(2),age int(3),passwd varchar(50), primary key (id));
    
    insert into star (id,name,sex,age,passwd) values(1,'zz','男',18,12345678);
    
    select * from star;
    

    数据1
    补充密码加密

    加密

    查询数据记录

    SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
    
    例:
    select * from star;
    select name,sex from star where id=1;
    

    数据3
    以列表方式竖向显示

    列

    只显示头2行
    头2
    显示第2行后的前3行

    行

    修改、更新数据表中的数据记录

    UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
    
    例:
    update star set age=33 where name='pp';
    select * from star;
    

    数4

    在数据表中删除指定的数据记录

    DELETE FROM 表名 [WHERE 条件表达式];
    
    例:delete from star where id=6;
    select * from star;
    

    行2

    六、修改表名和表结构

    修改表名

    ALTER TABLE 旧表名 RENAME 新表名;
    
    例:alter table star rename art;
    

    改1

    扩展表结构(增加字段)

    ALTER TABLE 表名 ADD address varchar(50) default '地址不详';
    #default ‘地址不详’:表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用
    
    例:
    alter table star add address varchar(50) default '地址不详';
    

    改2

    修改字段(列)名,添加唯一键

    ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
    
    例:
    alter table star change name art_name varchar(20) unique key;
    select * from star;
    

    改3

    删除字段

    ALTER TABLE 表名 DROP 字段名;
    
    例:alter table star drop address;
    

    改4

    扩展

    CREATE DATABASE school;
    use school;
    create table if not exists info (
    id int(4) zerofill primary key auto_increment,				#指定主键的第二种方式
    name varchar(10) not null,
    cardid int(18) not null unique key,
    hobby varchar(50));
    
    #---------------命令解释--------------------------------
    #if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
    #int(4) zerofill:表示若数值不满4位数,则前面用“0”填充,例0001
    #auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
    #unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键
    #not null:表示此字段不允许为NULL
    

    扩展1
    扩展2
    扩展3

    七、数据表高级操作

    克隆表,将数据表的数据记录生成到新的表中

    方法一

    create table test1 like info;  #通过 LIKE 方法,复制 info 表结构生成 test1 
    insert into test1 select * from info;
    

    复制1

    方法二

    CREATE TABLE test2 (SELECT * from info);
    
    show create table test2\G;					#获取数据表的表结构、索引等信息
    SELECT * from test2;
    

    复制2
    复制3

    清空表,删除表内的所有数据

    方法一:记录ID未删除

    delete from test1;
    #DELETE清空表后,返回的结果内有删除的记录条目;DELETE工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录。
    

    删除1

    方法二:删除记录ID

    truncate table test2;
    #TRUNCATE 清空表后,没有返回被删除的条目;TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上 TRUNCATE 会比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表内数据后,ID 会从 1 开始重新记录。
    

    除2

    创建临时表

    临时表创建成功之后,使用SHOW TABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表。

    CREATE TEMPORARY TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
    
    例:
    create temporary table test3 (
    id int(4) zerofill primary key auto_increment,
    name varchar(10) not null,
    sex char(2) not null);
    
    insert into test3 values(1,'as','男');
    
    select * from test3;
    show tables;
    
    quit;
    mysql -u root -p
    select * from test3;
    

    除3

    创建外键约束,保证数据的完整性和一致性

    外键的定义:如果同一个属性字段X在表一中是主键,而在表二中不是主键,则字段X称为表二的外键。

    主键表和外键表的理解:
    以公共关键字作主键的表为主键表(父表、主表)
    以公共关键字作外键的表为外键表(从表、外表)

    注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。

    #创建主表test4
    create table test4 (hobid int(4),hobname varchar(50));
    
    #创建从表test5
    create table test5 (id int(4) primary key auto_increment,name varchar(10),age int(3),hobid int(4));
    
    #为主表test4添加一个主键约束,主键名建议以“PK_”开头
    alter table test4 add constraint PK_hobid primary key (hobid);
    
    #为从表test5表添加外键,并将test5表的hobid字段和test4表的hobid字段建立外键关联,外键名建议以“FK_”开头
    alter table test5 add constraint FK_hob foreign key (hobid) references test4 (hobid);
    
    desc test5;
    

    外1
    插入新的数据记录时,要先主表再从表

    insert into test4 values (1,'reading');
    insert into test5 values (1,'ad',18,1);
    

    外2
    删数据记录时,要先从表再主表,也就是说删除主键表时必须要先删除其他与之相关联的表

    drop tables test5;
    drop tables test4;
    

    外3
    查看和删除外键约束

    show create table test5\G;
    alter table test5 drop foreign key FK_hob;
    alter table test5 drop key FK_hob;
    desc test5;
    

    外4

    MySQL中6种常见的约束

    主键约束(primary key)
    外键约束(foreign key)
    非空约束(not null)
    唯一性约束(unique [key|index]
    默认值约束(default)
    自增约束(auto_increment)
    

    八、数据库用户授权

    新建用户

    USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];
    #----------------------解释部分-----------------------------------------
    '用户名':指定将创建的用户名
    '来源地址':指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,
              本地用户可用localhost,允许任意主机登录可用通配符%
    '密码':若使用明文密码,直接输入'密码',插入到数据库时由Mysql自动加密;
           若使用加密密码,需要先使用SELECT PASSWORD('密码'); 获取密文,再在语句中添加 PASSWORD '密文';
           若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)
    #----------------------------------------------------------------------
    例如:
    create user 'test1'@'localhost' IDENTIFIED BY '123456';
    
    select password('123456');
    create user 'test2'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
    

    用户1

    查看用户信息

    #创建后的用户保存在 mysql 数据库的 user 表里
    use mysql;
    select user,authentication_string,Host from user;
    

    用户2

    重命名用户

    rename user 'test1'@'localhost' to 'zz'@'localhost';
    

    用户3

    删除用户

    drop user 'test2'@'localhost';
    

    用户4

    修改当前登录用户密码

    当前密码为abc123

    set PASSWORD = PASSWORD('123456');
    

    用户5

    修改其他用户密码

    set PASSWORD for 'zz'@'localhost' = PASSWORD('abc123');
    

    用户6

    忘记 root 密码的解决办法

    方法一:修改 /etc/my.cnf 配置文件,不使用密码直接登录到 mysql

    vim /etc/my.cnf
    [mysqld]
    skip-grant-tables					#添加,使登录mysql不使用授权表
    
    systemctl restart mysqld.service
    
    mysql								#直接登录
    

    用户7
    用户8

    使用 update 修改 root 密码,刷新数据库

    update mysql.user set AUTHENTICATION_STRING = PASSWORD('abc123') where user='root';
    
    FLUSH PRIVILEGES;
    quit;
    
    mysql -u root -pabc123
    
    注意:最后再把 /etc/my.cnf 配置文件里的 skip-grant-tables 删除或注释,并重启 mysql 服务。
    

    用户9

    九、数据库用户授权

    授予权限

    GRANT语句:专门用来设置数据库用户的访问权限。
    当指定的用户名不存在时,GRANT语句将会创建新的用户;
    当指定的用户名存在时,GRANT 语句用于修改用户信息。

    格式
    GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];
    #-------------------------------参数解释---------------------------------------------------------------------------
    权限列表:  用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。
              
    数据库名.表名:  用于指定授权操作的数据库和表的名称,其中可以使用通配符“*”。例如,使用“test.*”表示授权操作的对象为 test数据库中的所有表。
                  
    '用户名'@'来源地址':  用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP 地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.test.com”、“192.168.19.%”等。
    
    IDENTIFIED BY: 用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分,则用户的密码将为空。
    
    例如:
    #允许用户 lili 在本地查询 kky 数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录。
    GRANT select ON kky.* TO 'lili'@'localhost' IDENTIFIED BY 'abc123';
    
    flush privileges;
    quit;
    
    mysql -u lili -pabc123
    use kky;
    show tables;
    select * from info;
    
    其他授权例子:
    #允许用户 pp 在所有终端远程连接 mysql ,并拥有所有权限。
    GRANT ALL PRIVILEGES(可不写) ON *.* TO 'pp'@'%' IDENTIFIED BY '123456';
    

    查1
    查2

    查看权限

    SHOW GRANTS FOR 用户名@来源地址;
    
    例如:
    SHOW GRANTS FOR 'lili'@'localhost';
    

    查3

    撤销权限

    REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址;
    例如:
    REVOKE SELECT ON kky.* FROM 'lili'@'localhost';
    SHOW GRANTS FOR 'lili'@'localhost';
    
    #USAGE权限只能用于数据库登陆,不能执行任何操作;USAGE权限不能被回收,即 REVOKE 不能删除用户。
    flush privileges;
    REVOKE ALL ON *.* FROM 'lili'@'localhost';
    

    查4

    展开全文
  • 1)查看数据库完整信息: srvctl config database -db database dbname 2)重启数据库: srvctl stop/start database -db dbname 3) 查看数据库服务是否运行正常在nodes上: srvctl status service -db dbname 4) ...

    1)查看数据库完整信息:
    srvctl config database -db database dbname
    2)重启数据库:
    srvctl  stop/start database -db dbname
    3) 查看数据库服务是否运行正常在nodes上:
    srvctl status service -db dbname
    4) 查看listener是否正常运行在nodes上:
    srvctl status listener
    5) 重启listener
    lsnrctl stop/start
    6) 查看listener service
    lsnrctl services

    7)查看数据库名字

    srvctl config database


    Clean up GI and RAC DB

    The following is the steps to clean up the environment:
    
        stop database (srvctl stop database -d <DB_NAME> -o abort)
        deconfig crs
    
        #1. on every node except the first one,
        cd <GI_HOME>/crs/install
        ./rootcrs.pl -deconfig -force (run as root)
    
        #2. on the first node,
        cd <GI_HOME>/crs/install
        ./rootcrs.pl -deconfig -force -lastnode (run as root)
    
        clean up database (run as root)
    
        rm -rf /u01/app   (the location where <DB_HOME> and <GI_HOME> reside)
        rm -rf /etc/oracle
        rm -rf /etc/oratab
        rm -rf /etc/oraInst.loc
        rm -rf /var/tmp/.oracle
        rm -rf /var/opt/oracle
        rm -f /etc/init.d/ohasd
        rm -f /etc/init.d/init.ohasd
        rm -f /etc/init.d/init.tfs
       
        dd the disks if you have configured ASM
        reboot all hosts
    

    展开全文
  • MySQL数据库命令

    万次阅读 多人点赞 2018-10-07 20:45:25
    1.对数据库常用命令 1.连接数据库 mysql -u用户名 -p密码 2.显示已有数据库 show databases; 3.创建数据库 create database sqlname; 4.选择数据库 use database sqlname; 5.显示数据库中的表(先选择...

    1.对数据库常用命令

    1.连接数据库
    mysql -u用户名 -p密码
    2.显示已有数据库
    show databases;
    3.创建数据库
    create database sqlname;
    4.选择数据库
    use database sqlname;
    5.显示数据库中的表(先选择数据库)
    show tables;
    6.显示当前数据库的版本信息以及连接用户名
    select version(),user();
    7.删除数据库(删除时没有提示直接删除)
    drop database sqlname;

    2.数据库中对表的命令

    1.创建表
    (1)语法:
    create table tablename(
    字段1 数据类型 字段属性

    字段n
    );
    (2)注意:
    1.创建表时为了防止与保留字冲突,用’'括起来
    2.单行注释:#…
    多行注释://
    3.创建表时多字段中间用英文逗号隔开,最后一行不用逗号。
    (3) 字段约束和属性
    1.非空约束 not null(字段不允许为空)
    2.默认约束 default(设置默认值)
    3.唯一约束 unique key(uk)(设置字段的值是唯一的,可为空,但只能有一个空值)
    4.主键约束 primary key(pk)(作为表记录的唯一标识)
    5.外键约束 foreign key(fk)(用于两个表之间建立关系,需要指定引用主表的哪一字段。在数据库的存储引擎中InnoDB支持外键,MyISAM不支持外键。
    作为外键的字段要求是主表中的主键(单字段主键))

    添加外键约束:
    CONSTRAINT FK_外键名 FOREIGN KEY(字表中外键字段)REFERENCES 关联表名 (关联字段)。
    grandid作为字表的外键
    grandid
    在这里插入图片描述
    1.设置自增auto_increment=n,从n开始。
    2.设置自增set @@ auto_increment_increment=m,步长为m。
    在这里插入图片描述
    3.多字段设置主键:primary key(字段1,字段2…字段n)
    4.表中的注释/说明性文字:)comment=“说明文字”;
    5.设置字符集:)charset=“字符集”;
    6.查看表的结构:describe’表名’/desc 表名
    7.查看数据库定义:show create database sqlname;
    8.查看数据表定义:show create table tablename;
    9.查看默认存储引擎:show variables like’storage_engine%’;
    11.指定表的存储引擎:)engine=存储引擎;
    10.删除表:drop table ‘tablename’;
    11.获取当前日期:now();
    12.修改表:
    (1)修改表名:alter table 旧表名 rename 新表名;
    (2)添加字段:alter table 表名 add 字段名 数据类型…;(添加新的字段)
    (3)修改字段:alter table 表名 change 原字段名 新字段名 数据类型…;
    (4)删除字段:alter table 表名 drop 字段名;
    (5)在创建完表以后添加主键约束:
    alter table 表名 add constraint 主键名 primary key 表名(主键字段);
    (6)创建完表以后添加外键约束(作为外键的字段要求是主表中的主键(单字段主键)):
    alter table 表名 add constraint 外键名 foreign key(外键字段) references 关联表名 (关联字段);

    插入数据

    1.插入单行数据:
    insert into 表名 (字段名列表(逗号隔开)) values(值列表(逗号隔开));
    2.插入多行数据 :
    insert into 表名(字段名列表) values (值列表1), … ,(值列表n);
    3.将查询结果插入到新表中:
    create table 新表(select 字段1, … ,from 原表);

    查询student表中的id,name,sex,phone数据插入到newstudent表中:
    
    CREATE TABLE newstudent(SELECT id,`name`,sex,phone FROM student);
    
    

    3.更新数据(修改数据):
    update 表名 set 列名=更新值 where 更新条件;

    修改newstudent表中id=1001的数据名字为tom:
    
    UPDATE newstudent SET `name`='tom' WHERE id=1001;
    
    

    4.删除数据
    (1)delete from 表名 where 删除条件;
    delete 删除的是整条数据,不会只删除单个列。

    删除newstudent表中名字为tom的数据:
    
    DELETE FROM newstudent WHERE `name`='tom';
    

    (2)truncate table 删除数据:
    truncate table 删除的是表中所有的行,但表的结构,列,约束,索引等不会改变。不能用于有外键约束的表。删除数据不能恢复。
    truncate table 表名 where 删除条件;

    数据查询

    1.使用select查询
    select 列名/表达式/函数/常量 from 表名 where 查询条件 order by 排序的列名asc/desc;
    (1)查询所有的数据行和列:
    select * from 表名;
    (2)查询部分行和列:
    select 列名… from 表名 where 查询条件;
    (3)在查询中使用列的别名:
    select 列名 AS 新列名 form 表名 where 查询条件;
    计算,合并得到新的列名:
    select 列名1+’.’+列名2 AS 新列名 from 表名;
    (4)查询空值:
    通过is null 或者 is not null 判断列值是否为空

    查询student表中Email为空的学生姓名:
    
    SELECT `name` FROM student WHERE Email IS NULL;
    

    2.分组查询
    在这里插入图片描述

    #查询不同课程的平均分,最低分,最高分,并查询出平均分大于80分的课程
    SELECT r.subjectno,sub.`SubjectName` 课程名称,AVG(StudentResult) 平均分,
    MAX(StudentResult) 最高分,MIN(StudentResult) 最低分
    FROM result r INNER JOIN `subject` sub
    ON r.`SubjectNo`=sub.`SubjectNo` 
    GROUP BY r.subjectno
    #where AVG(StudentResult)>=80出现错误,
    #分组查询group by 在where语句后,
    #group by 约束条件使用having语句
    HAVING AVG(StudentResult)>=80;
    
    

    在这里插入图片描述

    常用函数

    1.聚合函数:
    (1)AVG (平均值):select avg(列名)from 表名
    假设列名为成绩 则查询到的是表中所有成绩的平均值。
    (2)count 返回某字段的行数
    (3)max 返回某字段的最大数
    (4)min 返回某字段的最小值
    (5)sum 返回某字段的和。
    2.字符串函数:
    (1)concat() 连接字符串s1,s2…sn为一个完整的字符串。
    (2)insert(s1,p1,n,news)将字符串s1从p1位置开始,n个字符长的字串替换为字符串news。
    (3)lower(s)将字符串s中的所有字符改为小写。
    (4)upper(s)将字符串s中的所有字符改为大写。
    (5)substring(s,num,len)返回字符串s的第num个位置开始长度为len的子字符串。
    3.时间日期函数:
    (1)获取当前日期:curdate();
    (2)获取当前时间:curtime();
    (3)获取当前日期和时间:now();
    (4)返回日期date为一年中的第几周:week(date);
    (5)返回日期date的年份:year(date);
    (6)返回时间time的小时值:hour(time);
    (7)返回时间time的分钟值:minute(time);
    (8)返回日期参数(date1和date2之间相隔的天数):datediff(date1,date2);
    (9)计算日期参数date加上n天后的日期:adddate(date,n);
    4.数学函数
    (1)返回大于或等于数值x的最小整数:ceil(x);
    (2)返回小于或等于数值x的最大整数:floor(x);
    (3)返回0~1之间的随机数:rand();
    order by 子句
    order by子句按照一定的顺序排列查询结果,asc升序排列,desc降序排列。
    limit子句
    显示指定位置指定行数的记录。
    select 字段名列表 form 表名 where 约束条件 group by分组的字段名 order by 排序列名 limit 位置偏移量,行数;
    #查询学生信息里gid=1按学号升序排列前四条记录
    在这里插入图片描述

    #查询学生信息里gid=1按学号升序排列前四条记录(步长)
    SELECT id,`name` FROM `student1` WHERE gid=1 ORDER BY id LIMIT 4;
    (查询表里全部信息中gid=1的前四个学生)
    

    查询结果:
    在这里插入图片描述

    
    #查询学生信息里gid=1按学号升序排列前四条记录(位置偏移量,步长)
    SELECT id,`name` FROM `student1` WHERE gid=1 ORDER BY id LIMIT 4,4;
    (查询表中全部信息gid=1前四条以后的全部信息中的前四条学生信息)
    

    查询结果:
    在这里插入图片描述

    模糊查询

    in子查询******not in 子查询
    使用in关键字可以使父查询匹配子查询返回的多个单字段值。
    解决使用比较运算符(=,>等),子查询返回值不唯一错误信息。
    like模糊查询
    LIKE语句语法格式:select * from 表名 where 字段名 like 对应值(子串)。

    它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。

    A:% 包含零个或多个字符的任意字符串: 1、LIKE’Mc%’ 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
      2、LIKE’%inger’ 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
      3、LIKE’%en%’ 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
      B:_(下划线) 任何单个字符:LIKE’_heryl’ 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
      C:[ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符:、
      1,LIKE’[CK]ars[eo]n’ 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
      2、LIKE’[M-Z]inger’ 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)
      ***D:[^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符:LIKE’M[^c]%’ 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。
      E: 它同于DOS命令中的通配符,代表多个字符
    :c
    c代表cc,cBc,cbc,cabdfec等多个字符。
      F:?同于DOS命令中的?通配符,代表单个字符 :b?b代表brb,bFb等
      G:# 大致同上,不同的是代只能代表单个数字。k#k代表k1k,k8k,k0k 。
      F:[!] 排除 它只代表单个字符
      下面我们来举例说明一下:
      例1,查询name字段中包含有“明”字的。
      select * from table1 where name like ‘%明%’
      例2,查询name字段中以“李”字开头。
      select * from table1 where name like '李

      例3,查询name字段中含有数字的。
      select * from table1 where name like ‘%[0-9]%’
      例4,查询name字段中含有小写字母的。
      select * from table1 where name like ‘%[a-z]%’
      例5,查询name字段中不含有数字的。
      select * from table1 where name like ‘%[!0-9]%’
      可以自定义转移符----》escape’自定义转移符’
      distinct------》去除重复项
      
      between*and模糊查询
     操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
     null ,not null查询

    -- 查询手机号不为null的用户数据
    SELECT * from user where phone is not null;
     
    -- 查询手机号为null的用户数据
    SELECT * from user where phone is null;
    

    exists 子查询 not exists子查询
    exists子查询用来确认后边的查询是否继续进行
    drop table if exists test—>判断是否存在表test,如果存在就删除。
    not exists实现取反操作。对不存在对应查询条件的记录。

    多表连接查询

    多表连接查询是通过各个表之间共同列的关联性来查询数据。
    1.内连接查询
    内连接查询根据表中共同的列进行匹配。取两个的表的交集。两个表存在主外键关系是通常使用内连接查询。
    内连接使用inner join…on 关键字或者where子句来进行表之间的关联。
    inner 可省略 on 用来设置条件。
    (1)在where子句中指定连接条件
    (2)在from中使用inner join…on关键字

    #查询学生姓名和成绩
    SELECT studentname,studentresult FROM student s,result r
    WHERE s.`StudentNo`=r.`StudentNo`
    
    #在from中使用inner join....on关键字
    SELECT s.`StudentName`,r.`StudentResult` ,r.`SubjectNo`FROM student s
    INNER JOIN result r ON s.`StudentNo`=r.`StudentNo`
    

    两种方法查询结果相同。
    2.外连接查询
    外连接查询中参与连接的表有主从之分,已主表的每行数据匹配从表的数据列,将符合连接条件的数据直接返回到结果集中,对不符合连接条件的列,将被填上null值再返回到结果集中。
    (1)左外连接查询
    left join…on 或者left outer join…on关键字进行表之间的关联。

    SELECT s.`StudentName`,r.`StudentResult` ,r.`SubjectNo`FROM student s
    LEFT JOIN result r ON s.`StudentNo`=r.`StudentNo`
    

    将没有成绩的学生成绩查出。
    (2)右外连接查询
    右外连接包含右表中所有的匹配行,右表中有的项在左表中没有对应的项将以null值填充。
    right join…onright outer join…on关键字进行表之间的关联。
    (3)自连接
    把一个表作为两个表使用。

    #创建一个表
    CREATE TABLE book(
    id INT(10),
    sort INT(10),
    books VARCHAR(10) NOT NULL
    );
    #插入数据
    INSERT INTO book VALUES (2,1,'古文书'),
    (3,1,'现代书'),
    (4,2,'《三字经》'),
    (5,2,'《唐诗三百首》'),
    (6,3,'《我与地坛》'),
    (7,2,'《游大林寺》'),
    (8,2,'《王右军年减十岁时》'),
    (9,3,'《致橡树》');
    
    #查询结果为:
    #书籍类型       书籍名
    #古文书         三字经....
    #现代书         我与地坛....
    
    SELECT a.books 书籍类型, b.books 书籍名  
    FROM book a,book b
    WHERE a.id=b.sort;
    

    在这里插入图片描述
    自连接查询结果:
    在这里插入图片描述

    MySQL的事务,视图,索引,备份和恢复

    1.事务
    事务是指将一系列数据操作捆绑成为一个整体进行统一管理。
    把所有的命令作为一个整体一起向系统提交或者撤销造组偶请求。
    事务属性:原子性,一致性,隔离性,持久性。
    myISA存储引擎不支持事务。

    关闭事务自动提交:set autocommit=0;
    (1)开始事务:begin/start transaction;
    (2)提交事务:commit;
    (3)回滚/撤销事务:rollback;
    恢复自动提交:set autocommit=1;
    设置结果集以??编码格式显示:set names ??;
    2.视图
    视图是一种查看数据库中一个或多个表中数据的方法。视图是一种虚拟表,作为来自一个或多个表的行或列的子集创建的。视图充当查询中的表筛选器的角色。
    (1)创建视图:create view 视图名 as <select语句>
    (2)删除视图:drop view 视图名;
    (3)查看视图数据:select 。。。。。from 视图名;
    3.索引
    索引类似于书的目录,使用索引可以将数据库程序无须对整个表扫描就可以在其中找到所需数据。
    (1)普通数据:允许重复和空值。
    (2)唯一索引:不允许出现重复。可以有多个唯一索引。
    (3)主键索引:非空,唯一。删除时drop primary key;
    (4)复合索引:将多个列组合作为索引。?
    (5)全文索引:可重复和空值,在char,varchar,text创建。
    where match(列名)against (‘查找内容’);
    (6)空间索引:对空间数据类型的列建立的索引。

    创建索引:
    create 【索引类型】index 索引名 on 表名 (创建索引的列);
    或者创建表时之间在列后面加上索引类型。
    或者修改表alter table 表名 add index 索引名 (索引列);
    删除索引:drop index 索引名;
    查看索引:show index from 表名;
    4.数据库备份和恢复
    1.使用mysqldump命令备份数据库
    mysqldump -u -p 数据库名>备份数据库位置及名字;
    表数据导出到文本文件
    select *from 表名 where 查询条件 into outfile 备份数据库位置及名字;

    2.使用mysql命令恢复数据库(先创建新的数据库)
    mysql -u -p 新创建数据库名<所要恢复数据库位置及文件名;
    source命令恢复数据库
    source 数据库备份文件;

    新建用户

    #创建本地用户
    CREATE USER `user`@`localhost` IDENTIFIED BY '123123';
    #用户可登陆任何远程主机,使用通配符%
    CREATE USER `user2`@`123%` IDENTIFIED BY '123123';
    #对用户进行全部权限授权
    GRANT ALL ON mysql.`user` TO `user2`@`123%`;
    #对已创建的用户授权
    GRANT SELECT,INSERT ON mysql.`user` TO `user2`@`123%`; 
    #创建用户时授权
    GRANT SELECT,INSERT ON mysql.`user` TO `user_2`@`123%` IDENTIFIED BY '123123';
    #删除用户user2(使用删除语句时必须拥有数据库全局权限或select权限)
    DROP USER `user2`@`123%`;
    DROP USER `user_2`@`123%`;
    DROP USER `user`@`localhost`;
    #mysqladmin修改超级用户user2账户密码(mysqladmin命令在cmd中使用,只能修改超级用户密码)
    mysqladmin -u root -p PASSWORD "123456";
    #修改当前登录用户密码
    SET PASSWORD =PASSWORD("123456");
    #修改其他用户密码
    SET PASSWORD FOR `user2`@`123%`=PASSWORD("123456");
    

    在这里插入图片描述

    展开全文
  • 删除数据库-命令方式-drop database;

    千次阅读 2013-09-25 20:41:36
    删除数据库方法1:使用DBCA图形化界面来进行。 方法2:使用如下命令--LINUX系统下 三条命令: SYS@bys1>startup mount exclusive ORACLE instance started. Total System Global Area 631914496 bytes Fixed Size...

    联机事务处理系统 OLTP,
    数据仓库系统 DATA WAREHOUSE 或决策支持系统 DSS
    OLTP系统DML操作频繁,并行事务处理多,一般都短。
    数据仓库典型操作是全表扫描,长查询,长事务,一般事务个数很少,往往是一个事务独占系统
    创建数据库需要SYSDBA权限。
    ################################################################################
    创建数据库三种常见方法:
    OUI,安装时创建数据库
    DBCA创建数据库。
    CREATE DATABASE命令手工创建数据库。
    手工创建数据库的大致步骤:
    1.选择惟一实例名的数据库名  建议选择有意义的名字
    2.选择数据库的字符集
    3.设置操作系统变量
    4.创建初始化参数文件
    5.NOMOUNT方式启动实例
    6.运行CREATE DATABASE命令
    7.运行脚本来生成数据字典和完成数据库建立后步骤
    8.根据需要创建附加表空间

    删除数据库方法1:使用DBCA图形化界面来进行。

    方法2:使用如下命令--LINUX系统下

    三条命令:

    SYS@bys1>startup mount exclusive
    ORACLE instance started.
    Total System Global Area  631914496 bytes
    Fixed Size                  1338364 bytes
    Variable Size             264242180 bytes
    Database Buffers          360710144 bytes
    Redo Buffers                5623808 bytes
    Database mounted.
    SYS@bys1>alter system enable restricted session;
    System altered.

    SYS@bys1>drop database;
    Database dropped.


    执行该操作后,

    数据库相应的控制文件,日志文件,数据文件会自动删除,spfile也会删除(归档日志不会删除).
    展开全文
  • linux 数据库操作命令

    千次阅读 2015-11-16 15:16:46
    linux 数据库操作命令
  • 数据库基础命令

    千次阅读 2017-04-24 22:12:14
    数据库的简单几款产品,以及SQL语句的编写
  • DB2数据库常用命令

    千次阅读 2020-05-12 11:08:47
    查看DB2数据库:db2 list db directory 查看DB2数据库应用:db2 list applications 查看DB2数据库应用与进程号:db2 list applications show detail 杀掉进程: db2 force application (id) 查看DB2数据库配置:...
  • MySQL数据库常用命令大全

    万次阅读 多人点赞 2018-08-19 18:02:44
    常用命令大全(持续更新) show databases;显示所有数据库 create database name;...drop name 直接删除数据库, 不提醒 show tables; 显示数据库中的表 desc name ;显示表的详细数据 create database m...
  • DB2数据库常用命令及查询

    千次阅读 2019-09-10 23:27:42
    1、 打开命令行窗口 ...=====操作数据库命令===== 4、 启动数据库实例  #db2start 5、 停止数据库实例  #db2stop  如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application ...
  • MySQL 数据库常用命令小结

    万次阅读 多人点赞 2010-01-04 21:52:00
    MySQL 数据库常用命令 1、MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 表的详细描述 ...
  • 问题:操作系统命令不小把数据库的数据文件删除了,数据库启动报错 ORA-01157 ORA-01110 1.把数据库启动到mount SQL> Startup mount 2.把数据文件离线并删除 SQL> Alter database datafile offline drop; 3....
  • 执行数据库操作命令对象SqlCommand

    千次阅读 热门讨论 2018-11-16 16:04:12
    数据库应用程序的开发流程一般主要分为以下几个步骤: ... 使用Connection对象成功创建数据库连接后,接下来就可以使用Command对象对数据源执行查询、添加、删除和修改等各种SQL命令了。 SqlComma...
  • VFP数据库基本命令

    千次阅读 2011-06-17 20:17:00
    VFP数据库基本命令一、表结构命令1.建表结构命令:create [表名]2.显示表结构命令:list/disp3.修改表结构命令:modi stru4.拷贝表结构命令:copy stru [fiel 字段名] to 表文件名5.数据表拷贝命令:copy to 表...
  • Oracle数据库操作命令

    千次阅读 2020-05-02 21:26:02
        首先,不管是Oracle、mySQL,还是其他数据库,一般都是使用的标准的SQL语言(结构化查询语言)。所以只要掌握了SQL语句,在其他数据库中大都是通用的。     但是,每个数据库都有自己的特性。这就需要...
  • VFP数据库常用命令

    千次阅读 2018-04-02 21:10:53
    最近在使用vfp数据库,总结一些常用命令如下:1. Create Database &lt;文件名&gt;创建数据库,将创建到默认目录。2. Open Database &lt;文件名&gt;打开数据库。3. Close Database [All]关闭数据库。...
  • 概述 mysql 数据库导入导出,有两种方式 ...2)直接拷贝数据库文件(此方法不推荐)。 一、mysql数据库导入  1. 已有数据库,可以直接用mysql命令  命令格式  mysql -u用户名 -p密码 数据库
  • 本文转自:http://www.cnblogs.com/fyen/archive/2011/01/18/1938707.html SQL SERVER 收缩数据库的命令 1.清空日志 DUMPTRANSACTION库名WITHNO_LOG2....BACKUPLOG数据库名WITHNO_LOG3.收缩数据库文件(如果...
  • MySQL数据库常用命令

    2009-08-19 15:39:00
    1、MySQL常用命令 create database name... 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 表的详细描述 select 中加上distinct去除重复字段 mysqladmin drop databa
  • MySql数据库常用命令总结(全)

    千次阅读 多人点赞 2016-12-15 09:22:10
    一、数据库命令1. 数据库连接命令:mysql -h主机地址 -u用户名 -p用户密码  1、找到安装目录bin, 进入该工作目录,键入该命令mysql -u root -p,提示输入密码,用户名前可以有空格也可以没有空格,但是密码前...
  • oracle数据库impdp命令的使用方法

    万次阅读 2018-06-06 14:06:16
    oracle数据库impdp命令的使用方法 impdp命令直接在命令行(cmd/bash)下直接用,不必登录oracle.只能导入expdp命令导出的dmp文件. 但是导出时数据所在的表空间以及用户会记录在文件中,因此导出时是什么表空间/用户,...
  • MySQL数据库+命令大全+常用操作

    千次阅读 多人点赞 2020-09-01 23:33:49
    1. 例:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接...则键入以下命令: mysql -h127.
  • 最的做的项目中要有到sqlite数据存储,写了测试程序进行测试,存入300万条记录,占用flash大小为 86.1M,当把表中的记录全部删除后发后数据库文件大小依然是 86.1M; 原因是: sqlite采用的是变长纪录存储,当你从...
  • LINUX下EXP命令全库备份数据库文件 1)建立备份目录,目录操作权限授权给Oracle用户 mkdir /backup --创建backup文件夹 cd / --进入cd语句 ls -l --查看文件的信息 id oracle -- 查看oracle用户信息,授予...
  • 1:mysql数据库备份命令 执行 mysqldump -u username -p database &gt; c:/bak.sql 再次输入mysql密码,导出完成! 2:编写bat脚本 @echo off color 0D MODE con: COLS=71 LINES=25 title ...
  • 数据库作为我们生活中常用的数据统计工具,其重要性不言而喻,可是在工作生活中,我们经常因为各种原因导致数据库出现故障,进而造成数据库文件的丢失。  对于大家来说,数据库文件是非常重要的,一旦发生数据库...
  • Oracle数据库Cmd命令创建新用户并连接 ORACLE 配置 Oracle的三个用户 用超级管理员身份连接 创建新用户 连接 添加数据库表格 删除用户数据 ORACLE 配置-配置文件所在的路 C:\app\Administrator\product\11.2.0\...
  • mysql数据库常用命令总结

    千次阅读 2017-12-12 21:43:22
    本文主要记录一些mysql日常使用的命令,供以后查询。 1.更改root密码 mysqladmin -uroot password 'yourpassword'1 2.远程登陆mysql服务器 mysql -uroot -p -h192.168.137.10 -P33061 3.查询数据库 show...
  • PostgreSQL数据库导出命令pg_dump详解

    万次阅读 2017-05-11 19:11:10
    这个脚本文件的格式是纯文本,它包含许多 SQL 命令, 这些 SQL 命令可以用于重建该数据库并将之恢复到保存成脚本的时候的状态.要恢复这些脚本,使用 psql。 它们甚至可以用于在其它机器甚至是其它硬件体系的...
  • informix数据库常用命令总结

    千次阅读 2018-04-17 16:08:39
    打开 /etc/services文件查看服务端口 $ ol_informix1170 27703/tcp $ dr_informix1170 25423/tcp 六、 设置自启动 编辑/etc/rc.local添加: INFORMIXDIR=/opt/IBM/informix INFORMIXSERVER=ol_...
  • MariaDB创建,更改,删除数据库命令

    千次阅读 2017-10-30 17:27:00
    删除现有的MySQL数据库 仅在不存在的情况下创建MySQL数据库 仅当存在MySQL数据库时才会丢失 更改db.opt的数据库特性 升级数据目录选项进行迁移和编码 1.创建新的MySQL数据库 要创建一个MariaDB数据库,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 464,289
精华内容 185,715
热门标签
关键字:

删除数据库文件的命令