zoukankan      html  css  js  c++  java
  • 常用的SQL语句

    最常用的显示命令:

    1、显示数据库列表。
    show databases;

    2、显示库中的数据表:
    use mysql;
    show tables;

    3、显示数据表的结构:
    describe 表名;

    4、建库:
    create database 库名;

    5、建表:
    use 库名;
    create table 表名 (字段设定列表);

    6、删库和删表:
    drop database 库名;
    drop table 表名;

    7、将表中记录清空:
    delete from 表名;(这个清空表只是把数据表内容数据清掉,自增id不会被清掉,自增id会保留)
    truncate table 表名;(成功返回0)(自增id也一同会被清掉)
    truncate与delete的区别:
    a.事务:truncate是不可以rollback的,但是delete是可以rollback的;
    原因:truncate删除整表数据(ddl语句,隐式提交),delete是一行一行的删除,可以rollback
    b.效果:truncate删除后将重新水平线和索引(id从零开始) ,delete不会删除索引
    c.truncate 不能触发任何Delete触发器。
    d.delete 删除可以返回行数

    8、显示表中的记录:
    select * from 表名
    连接MySQL
    格式: mysql -h 主机地址 -u用户名 -p用户密码

    例 1:连接到本机上的 MySQL。
    mysql -uroot -pmysql;

    连接到远程主机上的 MYSQL。
    mysql -h 127.0.0.1 -uroot -pmysql;

    2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
    mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样)

    3、退出MYSQL命令: exit (回车)
    修改新密码

    在终端输入:mysql -u用户名 -p密码,回车进入Mysql。

    > use mysql;

    > update user set password=PASSWORD('新密码') where user='用户名';

    > flush privileges; #更新权限

    > quit; #退出


    二、修改密码

    格式:mysqladmin -u用户名 -p旧密码 password 新密码
    1、给root加个密码ab12。首先在DOS下进入目录mysqlin,然后键入以下命令

    mysqladmin -u root -password ab12

    注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
    2、再将root的密码改为djg345。

    mysqladmin -u root -p ab12 password djg345
    (注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
    3、命令行修改root密码:

    mysql> UPDATE mysql.user SET password=PASSWORD(’新密码’) WHERE User=’root’;

    mysql> FLUSH PRIVILEGES;
    4、显示当前的user:

    mysql> SELECT USER();


    三、增加新用户

    格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
    1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入
    MYSQL,然后键入以下命令:

    grant select,insert,update,delete on *.* to test1”%" Identified by “abc”;

    但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见2。
    2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),

    这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。

    grant select,insert,update,delete on mydb.* to test2@localhost identifiedby “abc”;

    如果你不想test2有密码,可以再打一个命令将密码消掉。

    grant select,insert,update,delete on mydb.* to test2@localhost identified by “”;
    删除用户

    mysql -u用户名 -p密码

    mysql>delete from user where user='用户名' and host='localhost';

    mysql>flush privileges;

    //删除用户的数据库

    mysql>drop database dbname;

    数据库操作

    显示所有的数据库

    mysql> show databases;(注意:最后有个 s)

    创建数据库

    mysql> create database test;

    连接数据库

    mysql> use test;

    查看当前使用的数据库

    mysql> select database();

    当前数据库包含的表信息

    mysql> show tables; (注意:最后有个 s)

    删除数据库

    mysql> drop database test;

    表操作

    备注:操作之前使用“use <数据库名>”应连接某个数据库。

    建表

    命令:create table <表名> (<字段名 1> <类型 1> [,..<字段名 n> <类型 n>]);

    例子:

    mysql> create table MyClass(

    > id int(4) not null primary key auto_increment,

    > name char(20) not null,

    > sex int(4) not null default '0',

    > degree double(16,2));

    获取表结构

    命令: desc 表名,或者show columns from 表名

    例子:

    mysql> describe MyClass

    mysql> desc MyClass;

    mysql> show columns from MyClass;

    删除表

    命令:drop table <表名>

    例如:删除表名为 MyClass 的表

    mysql> drop table MyClass;

    插入数据

    命令:insert into <表名> [( <字段名 1>[,..<字段名 n > ])] values ( 值 1 )[, ( 值 n )]

    例子:

    mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

    查询表中的数据

    查询所有行

    mysql> select * from MyClass;

    查询前几行数据

    例如:查看表 MyClass 中前 2 行数据

    mysql> select * from MyClass order by id limit 0,2;

    或者

    mysql> select * from MyClass limit 0,2;

    删除表中数据

    命令:delete from 表名 where 表达式

    例如:删除表 MyClass 中编号为 1 的记录

    mysql> delete from MyClass where id=1;

    修改表中数据

    命令:update 表名 set 字段=新值,... where 条件

    mysql> update MyClass set name='Mary' where id=1;

    在表中增加字段

    命令:alter table 表名 add 字段 类型 其他;

    例如:在表 MyClass 中添加了一个字段 passtest,类型为 int(4),默认值为 0

    mysql> alter table MyClass add passtest int(4) default '0'

    更改表名

    命令:rename table 原表名 to 新表名;

    例如:在表 MyClass 名字更改为 YouClass

    mysql> rename table MyClass to YouClass;

    更新字段内容

    命令:update 表名 set 字段名 = 新内容

    update 表名 set 字段名 = replace(字段名, '旧内容', '新内容');

    例如:文章前面加入 4 个空格

    update article set content=concat(' ', content);

    数据库导入导出


    四、从数据库导出数据库文件


    使用“mysqldump”命令

    首先进入 DOS 界面,然后进行下面操作。

    1)导出所有数据库

    格式:mysqldump -u [数据库用户名] -p -A>[备份文件的保存路径]

    2)导出数据和数据结构

    格式:mysqldump -u [数据库用户名] -p [要备份的数据库名称]>[备份文件的保存路径]

    举例:

    例 1:将数据库 mydb 导出到 e:MySQLmydb.sql 文件中。

    打开开始->运行->输入“cmd”,进入命令行模式。

    c:> mysqldump -h localhost -u root -p mydb >e:MySQLmydb.sql

    然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。

    例 2:将数据库 mydb 中的 mytable 导出到 e:MySQLmytable.sql 文件中。

    c:> mysqldump -h localhost -u root -p mydb mytable>e:MySQLmytable.sql

    例 3:将数据库 mydb 的结构导出到 e:MySQLmydb_stru.sql 文件中。

    c:> mysqldump -h localhost -u root -p mydb --add-drop-table >e:MySQLmydb_stru.sql

    备注:-h localhost 可以省略,其一般在虚拟主机上用。

    3)只导出数据不导出数据结构

    格式:

    mysqldump -u [数据库w用户名] -p -t [要备份的数据库名称]>[备份文件的保存路径]

    4)导出数据库中的Events

    格式:mysqldump -u [数据库用户名] -p -E [数据库用户名]>[备份文件的保存路径]

    5)导出数据库中的存储过程和函数

    格式:mysqldump -u [数据库用户名] -p -R [数据库用户名]>[备份文件的保存路径]


    五、从外部文件导入数据库中


    1)使用“source”命令

    首先进入“mysql”命令控制台,然后创建数据库,然后使用该数据库。最后执行下面操作。

    mysql>source [备份文件的保存路径]

    2)使用“<”符号

    首先进入“mysql”命令控制台,然后创建数据库,然后退出 MySQL,进入 DOS 界面。最后执行下面操作。

    mysql -u root –p < [备份文件的保存路径]


    六、备份数据库:

    注意,mysqldump命令在DOS的 mysqlin 目录下执行,不能在mysql环境下执行,因此,不能以分号“;”结尾。若已登陆mysql,请运行退出命令mysql> exit
    1.导出整个数据库

    导出文件默认是存在mysqlin目录下

    mysqldump -u用户名 -p数据库名 > 导出的文件名

    mysqldump -uroot -p123456 database_name > outfile_name.sql
    2.导出一个表

    mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

    mysqldump -u user_name -p database_name table_name > outfile_name.sql
    3.导出一个数据库结构

    mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql

    -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
    4.带语言参数导出

    mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql


    七、将文本数据转到数据库中

    1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用 来代替.例:

    3 rose 大连二中 1976-10-10

    4 mike 大连一中 1975-12-23

    假设你把这两组数据存为school.txt文件,放在c盘根目录下。
    2、数据传入命令

    mysql> load data local infile "c:school.txt" into table 表名;

    注意:你最好将文件复制到mysqlin目录下,并且要先用use命令打表所在的库。

    八、对表的操作

    1、显示数据表的结构:

    mysql> DESCRIBE 表名; (DESC 表名)
    2、建立数据表:

    mysql> USE 库名; //进入数据库

    mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
    3、删除数据表:

    mysql> DROP TABLE 表名;
    4、重命名数据表

    alter table t1 rename t2;
    5、显示表中的记录:

    mysql> SELECT * FROM 表名;
    6、往表中插入记录:

    mysql> INSERT INTO 表名 VALUES (”hyq”,”M”);
    7、更新表中数据:

    mysql-> UPDATE 表名 SET 字段名1=’a',字段名2=’b’ WHERE 字段名3=’c';
    8、将表中记录清空:

    mysql> DELETE FROM 表名;
    9、用文本方式将数据装入数据表中:

    mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE 表名;
    10、 显示表的定义,还可以看到表的约束,例如外键
    mysql> SHOW CREATE TABLE yourtablename ;

    还可以通过 mysqldump 将表的完整定义转储到文件中,当然包括外键定义。

    还可以通过下面的指令列出表 T 的外键约束:

    mysql> SHOW TABLE STATUS FROM yourdatabasename LIKE 'T'

    外键约束将会在表注释中列出。
    存储过程
    11、创建存储过程
    CREATE PROCEDURE procedureName (in paramentName type, in paramentName type,……)

    BEGIN

    SQL sentences;

    END


    12、调用存储过程

    mysql> CALL procedureName(paramentList);
    例:mysql> CALL addMoney(12, 500);


    13、查看特定数据库的存储过程

    方法一:mysql> SELECT `name` FROM mysql.proc WHERE db = 'your_db_name' AND `type` = 'PROCEDURE';

    方法二:mysql> show procedure status;
    14、删除存储过程

    mysql> DROP PROCEDURE procedure_name;

    mysql> DROP PROCEDURE IF EXISTS procedure_name;
    15、查看指定的存储过程定义

    mysql> SHOW CREATE PROCEDURE proc_name;

    mysql> SHOW CREATE FUNCTION func_name;
    ---------- 示例一-----------

    mysql> DELIMITER $$

    mysql> USE `db_name`$$ //选择数据库

    mysql> DROP PROCEDURE IF EXISTS `addMoney`$$ //如果存在同名存储过程,则删除之

    mysql> CREATE DEFINER= `root`@`localhost` PROCEDURE `addMoney`(IN xid INT(5),IN xmoney INT(6))

    mysql> BEGIN

    mysql> UPDATE USER u SET u.money = u.money + xmoney WHERE u.id = xid; //分号";"不会导致语句执行,因为当前的分割符被定义为$$

    mysql> END$$ //终止

    mysql> DELIMITER ; //把分割符改回分号";"
    mysql> call addMoney(5,1000); //执行存储过程
    ---------- 示例二-----------

    mysql> delimiter //

    mysql> create procedure proc_name (in parameter integer)

    mysql> begin

    mysql> if parameter=0 then

    mysql> select * from user order by id asc;

    mysql> else

    mysql> select * from user order by id desc;

    mysql> end if;

    mysql> end;

    mysql> // //此处“//”为终止符

    mysql> delimiter ;

    mysql> show warnings;

    mysql> call proc_name(1);

    mysql> call proc_name(0);

    九、修改表的列属性的操作

    1、为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),

    并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:

    mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
    2、增加一个新TIMESTAMP列,名为d:

    mysql> ALTER TABLE t2 ADD d TIMESTAMP;
    3、在列d上增加一个索引,并且使列a为主键:

    mysql> ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
    4、删除列c:

    mysql> ALTER TABLE t2 DROP COLUMN c;
    5、增加一个新的AUTO_INCREMENT整数列,命名为c:

    mysql> ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);

    注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,并且另外我们声明c为NOT NULL,

    因为索引了的列不能是NULL
    十、一个建库和建表以及插入数据的实例
    drop database if exists school; //如果存在SCHOOL则删除

    create database school; //建立库SCHOOL

    use school; //打开库SCHOOL

    create table teacher //建立表TEACHER

    (

    id int(3) auto_increment not null primary key,

    name char(10) not null,

    address varchar(50) default ‘深圳’,

    year date

    ); //建表结束

    //以下为插入字段

    insert into teacher values('','allen','大连一中','1976-10-10');

    insert into teacher values('','jack','大连二中','1975-12-23');

    如果你在mysql提示符键入上面的命令也可以,但不方便调试。

    (1)你可以将以上命令原样写入一个文本文件中,假设为school.sql,然后复制到c:下,并在DOS状态进入目录mysqlin,然后键入以下命令:

    mysql -uroot -p密码 < c:school.sql

    如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。

    (2)或者进入命令行后使用 mysql> source c:school.sql; 也可以将school.sql文件导入数据库中。
    MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格:

    表头(header): 每一列的名称;
    列(row): 具有相同数据类型的数据的集合;
    行(col): 每一行用来描述某个人、物的具体信息;
    值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
    键(key): 表中用来识别某个特定的人物的方法, 键的值在当前列中具有唯一性。

    MySQL脚本的基本组成
    与常规的脚本语言类似, MySQL 也具有一套对字符、单词以及特殊符号的使用规定, MySQL 通过执行 SQL 脚本来完成对数据库的操作, 该脚本由一条或多条MySQL语句(SQL语句 + 扩展语句)组成, 保存时脚本文件后缀名一般为 .sql。在控制台下, MySQL 客户端也可以对语句进行单句的执行而不用保存为.sql文件。

    标识符
    标识符用来命名一些对象, 如数据库、表、列、变量等, 以便在脚本中的其他地方引用。MySQL标识符命名规则稍微有点繁琐, 这里我们使用万能命名规则: 标识符由字母、数字或下划线(_)组成, 且第一个字符必须是字母或下划线。
    对于标识符是否区分大小写取决于当前的操作系统, Windows下是不敏感的, 但对于大多数 linuxunix 系统来说, 这些标识符大小写是敏感的。

    MySQL中的数据类型
    MySQL有三大类数据类型, 分别为数字、日期时间、字符串, 这三大类中又更细致的划分了许多子类型:
    数字类型
    整数: tinyint、smallint、mediumint、int、bigint
    浮点数: float、double、real、decimal
    日期和时间: date、time、datetime、timestamp、year
    字符串类型
    字符串: char、varchar
    文本: tinytext、text、mediumtext、longtext
    二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

    使用MySQL数据库

    登录到MySQL
    当 MySQL 服务已经运行时, 我们可以通过MySQL自带的客户端工具登录到MySQL数据库中, 首先打开命令提示符, 输入以下格式的命名:
    mysql -h 主机名 -u 用户名 -p
    -h : 该命令用于指定客户端所要登录的MySQL主机名, 登录当前机器该参数可以省略;
    -u : 所要登录的用户名;
    -p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。

    以登录刚刚安装在本机的MySQL数据库为例, 在命令行下输入 mysql -u root -p 按回车确认, 如果安装正确且MySQL正在运行, 会得到以下响应:

    Enter password:

    若密码存在, 输入密码登录, 不存在则直接按回车登录, 按照本文中的安装方法, 默认 root 账号是无密码的。登录成功后你将会看到 Welecome to the MySQL monitor... 的提示语。

    然后命令提示符会一直以 mysql> 加一个闪烁的光标等待命令的输入, 输入 exit 或 quit 退出登录。


    创建一个数据库
    使用 create database 语句可完成对数据库的创建, 创建命令的格式如下:

    create database 数据库名 [其他选项];

    例如我们需要创建一个名为 samp_db 的数据库, 在命令行下执行以下命令:

    create database samp_db character set gbk;

    为了便于在命令提示符下显示中文, 在创建时通过 character set gbk 将数据库字符编码指定为 gbk。创建成功时会得到 Query OK, 1 row affected(0.02 sec) 的响应。

    注意: MySQL语句以分号(;)作为语句的结束, 若在语句结尾不添加分号时, 命令提示符会以 -> 提示你继续输入(有个别特例, 但加分号是一定不会错的);

    提示: 可以使用 show databases; 命令查看已经创建了哪些数据库。


    选择所要操作的数据库
    要对一个数据库进行操作, 必须先选择该数据库, 否则会提示错误:

    ERROR 1046(3D000): No database selected

    两种方式对数据库进行使用的选择:

    一: 在登录数据库时指定, 命令: mysql -D 所选择的数据库名 -h 主机名 -u 用户名 -p

    例如登录时选择刚刚创建的数据库: mysql -D samp_db -u root -p

    二: 在登录后使用 use 语句指定, 命令: use 数据库名;

    use 语句可以不加分号, 执行 use samp_db 来选择刚刚创建的数据库, 选择成功后会提示: Database changed

    创建数据库表
    使用 create table 语句可完成对表的创建, create table 的常见形式:

    create table 表名称(列声明);

    以创建 students 表为例, 表中将存放 学号(id)、姓名(name)、性别(sex)、年龄(age)、联系电话(tel) 这些内容:

    create table students

    id int unsigned not null auto_increment primary key,
    name char(8) not null,
    sex char(4) not null,
    age tinyint unsigned not null,
    tel char(13) null default "-"
    );

    对于一些较长的语句在命令提示符下可能容易输错, 因此我们可以通过任何文本编辑器将语句输入好后保存为 createtable.sql 的文件中, 通过命令提示符下的文件重定向执行执行该脚本。

    打开命令提示符, 输入: mysql -D samp_db -u root -p < createtable.sql

    (提示: 1.如果连接远程主机请加上 -h 指令; 2. createtable.sql 文件若不在当前工作目录下需指定文件的完整路径。)

    语句解说:

    create table tablename(columns) 为创建数据库表的命令, 列的名称以及该列的数据类型将在括号内完成;

    括号内声明了5列内容, id、name、sex、age、tel为每列的名称, 后面跟的是数据类型描述, 列与列的描述之间用逗号(,)隔开;

    以 "id int unsigned not null auto_increment primary key" 行进行介绍:

    "id" 为列的名称;
    "int" 指定该列的类型为 int(取值范围为 -8388608到8388607), 在后面我们又用 "unsigned" 加以修饰, 表示该类型为无符号型, 此时该列的取值范围为 0到16777215;
    "not null" 说明该列的值不能为空, 必须要填, 如果不指定该属性, 默认可为空;
    "auto_increment" 需在整数列中使用, 其作用是在插入数据时若该列为 NULL, MySQL将自动产生一个比现存值更大的唯一标识符值。在每张表中仅能有一个这样的值且所在列必须为索引列。
    "primary key" 表示该列是表的主键, 本列的值必须唯一, MySQL将自动索引该列。

    下面的 char(8) 表示存储的字符长度为8, tinyint的取值范围为 -127到128, default 属性指定当该列值为空时的默认值。

    提示: 1. 使用 show tables; 命令可查看已创建了表的名称; 2. 使用 describe 表名; 命令可查看已创建的表的详细信息。

    操作MySQL数据库
    向表中插入数据
    insert 语句可以用来将一行或多行数据插到数据库表中, 使用的一般形式如下:

    insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);

    其中 [] 内的内容是可选的, 例如, 要给 samp_db 数据库中的 students 表插入一条记录, 执行语句:

    insert into students values(NULL, "王刚", "男", 20, "13811371377");

    按回车键确认后若提示 Query Ok, 1 row affected (0.05 sec) 表示数据插入成功。 若插入失败请检查是否已选择需要操作的数据库。

    有时我们只需要插入部分数据, 或者不按照列的顺序进行插入, 可以使用这样的形式进行插入:

    insert into students (name, sex, age) values("孙丽华", "女", 21);


    查询表中的数据
    select 语句常用来根据一定的查询规则到数据库中获取数据, 其基本的用法为:

    select 列名称 from 表名称 [查询条件];

    例如要查询 students 表中所有学生的名字和年龄, 输入语句 select name, age from students; 执行结果如下:

    mysql> select name, age from students;
    +--------+-----+
    | name | age |
    +--------+-----+
    | 王刚 | 20 |
    | 孙丽华 | 21 |
    | 王永恒 | 23 |
    | 郑俊杰 | 19 |
    | 陈芳 | 22 |
    | 张伟朋 | 21 |
    +--------+-----+
    6 rows in set (0.00 sec)

    mysql>
    也可以使用通配符 * 查询表中所有的内容, 语句: select * from students;


    按特定条件查询:
    where 关键词用于指定查询条件, 用法形式为: select 列名称 from 表名称 where 条件;

    以查询所有性别为女的信息为例, 输入查询语句: select * from students where sex="女";

    where 子句不仅仅支持 "where 列名 = 值" 这种名等于值的查询形式, 对一般的比较运算的运算符都是支持的, 例如 =、>、<、>=、<、!= 以及一些扩展运算符 is [not] null、in、like 等等。 还可以对查询条件使用 or 和 and 进行组合查询, 以后还会学到更加高级的条件查询方式, 这里不再多做介绍。

    示例:

    查询年龄在21岁以上的所有人信息: select * from students where age > 21;

    查询名字中带有 "王" 字的所有人信息: select * from students where name like "%王%";

    查询id小于5且年龄大于20的所有人信息: select * from students where id<5 and age>20;


    更新表中的数据
    update 语句可用来修改表中的数据, 基本的使用形式为:

    update 表名称 set 列名称=新值 where 更新条件;

    使用示例:

    将id为5的手机号改为默认的"-": update students set tel=default where id=5;

    将所有人的年龄增加1: update students set age=age+1;

    将手机号为 13288097888 的姓名改为 "张伟鹏", 年龄改为 19: update students set name="张伟鹏", age=19 where tel="13288097888";


    删除表中的数据
    delete 语句用于删除表中的数据, 基本用法为:

    delete from 表名称 where 删除条件;

    使用示例:

    删除id为2的行: delete from students where id=2;

    删除所有年龄小于21岁的数据: delete from students where age<20;

    删除表中的所有数据: delete from students;


    创建后表的修改
    alter table 语句用于创建后对表的修改, 基础用法如下:

    添加列
    基本形式: alter table 表名 add 列名 列数据类型 [after 插入位置];

    示例:

    在表的最后追加列 address: alter table students add address char(60);

    在名为 age 的列后插入列 birthday: alter table students add birthday date after age;

    修改列
    基本形式: alter table 表名 change 列名称 列新名称 新数据类型;

    示例:

    将表 tel 列改名为 telphone: alter table students change tel telphone char(13) default "-";

    将 name 列的数据类型改为 char(16): alter table students change name name char(16) not null;

    删除列
    基本形式: alter table 表名 drop 列名称;

    示例:

    删除 birthday 列: alter table students drop birthday;

    重命名表
    基本形式: alter table 表名 rename 新表名;

    示例:

    重命名 students 表为 workmates: alter table students rename workmates;

    删除整张表
    基本形式: drop table 表名;

    示例: 删除 workmates 表: drop table workmates;

    删除整个数据库
    基本形式: drop database 数据库名;

    示例: 删除 samp_db 数据库: drop database samp_db;

    附录
    修改 root 用户密码
    按照本文的安装方式, root 用户默认是没有密码的, 重设 root 密码的方式也较多, 这里仅介绍一种较常用的方式。

    使用 mysqladmin 方式:

    打开命令提示符界面, 执行命令: mysqladmin -u root -p password 新密码

    执行后提示输入旧密码完成密码修改, 当旧密码为空时直接按回车键确认即可。

    可视化管理工具 MySQL Workbench
    尽管我们可以在命令提示符下通过一行行的输入或者通过重定向文件来执行mysql语句, 但该方式效率较低, 由于没有执行前的语法自动检查, 输入失误造成的一些错误的可能性会大大增加, 这时不妨试试一些可视化的MySQL数据库管理工具, MySQL Workbench 就是 MySQL 官方 为 MySQL 提供的一款可视化管理工具, 你可以在里面通过可视化的方式直接管理数据库中的内容, 并且 MySQL Workbench 的 SQL 脚本编辑器支持语法高亮以及输入时的语法检查, 当然, 它的功能强大, 绝不仅限于这两点。

    MySQL Workbench官方介绍: http://www.mysql.com/products/workbench/

    MySQL Workbench 下载页: http://dev.mysql.com/downloads/tools/workbench/

    下面是在linux下的常用指令:

    Mysql安装目录

    数据库目录

    /var/lib/mysql/

    配置文件

    /usr/share/mysql(mysql.server命令及配置文件)

    相关命令

    /usr/bin(mysqladmin mysqldump等命令)

    启动脚本

    /etc/init.d/mysql(启动脚本文件mysql的目录)

  • 相关阅读:
    C# 从服务器下载文件
    不能使用联机NuGet 程序包
    NPOI之Excel——合并单元格、设置样式、输入公式
    jquery hover事件中 fadeIn和fadeOut 效果不能及时停止
    UVA 10519 !! Really Strange !!
    UVA 10359 Tiling
    UVA 10940 Throwing cards away II
    UVA 10079 Pizze Cutting
    UVA 763 Fibinary Numbers
    UVA 10229 Modular Fibonacci
  • 原文地址:https://www.cnblogs.com/GLory-LTF/p/14536432.html
Copyright © 2011-2022 走看看