格式: mysql -h主机地址 -u用户名 -p用户密码
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -u root -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的。这里密码输入即可进入MySQL:
G:\>cd G:\mysql_log\bin --进入目录 mysqlbin
G:\mysql_log\bin>mysql -u root -p --键入命令mysql -u root -p
Enter password: ****** --输入密码即可
Welcome to the MySQL monitor. Commands end with ; or \g.
假设远程主机的IP为:110.110.110.110,用户名为root,密码为123456。则键入以下命令:mysql -h 110.110.110.110 -u root -p 123456,这里不做演示了。
格式:mysql admin -u 用户名 -p 旧密码 password 新密码
1.给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令:
mysqladmin -u root -password ab12;//注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2.再将root的密码改为1123123。
`mysqladmin -u root -p ab12 password 1123123;
create database 数据库名;//如create database studentDB;
drop database <数据库名>;//如 drop database studentDB;
use studentDB;
MySQL支持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(integer、smallint、decimal和numeric),以及近似数值数据类型(float、real和double precision)。
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT | 1 byte | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2 bytes | (-32 768,32 767) | (0,65 535) | 大整数值 |
MEDIUMINT | 3 bytes | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
INT或INTEGER | 4 bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
BIGINT | 8 bytes | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
FLOAT | 4 bytes | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度 浮点数值 |
DOUBLE | 8 bytes | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度 浮点数值 |
DECIMAL | 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
类型 | 大小 ( bytes) | 范围 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | ‘-838:59:59’/‘838:59:59’ | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长字符串 |
TINYBLOB | 0-255 bytes | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255 bytes | 短文本字符串 |
BLOB | 0-65 535 bytes | 二进制形式的长文本数据 |
TEXT | 0-65 535 bytes | 长文本数据 |
MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |
注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
create table IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT unsigned auto_increment,--unsigned表示无符号数,即值大于等于0
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )//完整性约束
);
完整性约束包括:not null、auto_increment、primary key、foreign key(外码)referrences 参照表(主码)
、unique、check() 等;
drop table 表名;//如 drop table course;
insert into 表名 ( field1, field2,...fieldN )
values
( value1, value2,...valueN );
select [all|distinct]<目标列1> 别名[,<目标列2> 别名.....]from <表名1/视图名1>[,<表名2/视图名2>...]|
我们知道从 MySQL 表中使用 select语句来查询数据。如需有条件地从表中选取数据,可将 where子句添加到 select语句中,相当于做选择操作。where 子句也可以运用于 SQL 的 delete或者 update命令。
select field1, field2,...fieldN from table_name1, table_name2...
[where condition1 [and|or] condition2.....
--如:select * from student where sdept='计算机系' and sex='男' and sage>=20;
--又如 delete from student where sno='23131423';
--再如 update student set sname='张三' where sno='23403432';
我们知道在 MySQL 中使用 SQL select命令来读取数据, 同时我们可以在 SELECT 语句中使用 where 子句来获取指定的记录。where子句中可以使用= > <等操作符来设定条件,当时有时候我们需要一些模糊的条件查询,例如,查找学生表中学生姓名姓刘的所有学生,这时就需要用SQL like子句中使用百分号 **%**字符来表示任意长度的字符串,_字符代表任意单个字符,通过这两个字符可以达到模糊查询的效果。
select * from student where sname like '刘_' and sno like '2000%';
--上述语句查询学生表中姓名为刘X开头且学号为'2000'开头的学生信息;
我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。
如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 order by 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。
select field1, field2,...fieldN from table_name1, table_name2...
order by field1 [ASC|DESC], [field2...] [ASC|DESC];
--如:select * from student order by sage desc;//查询学生并按年龄降序排序,注意系统默认是asc排序
group by 语句根据一个或多个列对结果集进行分组,在分组的列上我们可以使用 count, sum, avg等函数。
例如: select class 班级,count(*) 人数 from student group by class;
我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用MySQL 的 join在两个或多个表中查询数据。你可以在select, update和 delete语句中使用Mysql 的 join 来联合多表查询。left join 与 join 有所不同。 MySQL left join 会读取左边数据表的全部数据,即便右边表无对应数据
select s.sno,s.sname,c.cno,s.score from student s,course c where s.sno =s.cno;//join方式相当于等值连接
select a.tutorial_id, a.tutorial_author, b.tutorial_count from tutorials_tbl a left join tcount_tbl b on a.tutorial_author = b.tutorial_author;//左连接方式,即保留左边悬浮元组
如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL update命令来操作。
update 表名 set field1=new-value1, field2=new-value2...[where 子句];
--例如:update student set sname='张三' where sno='23403432';
你可以使用 SQL 的 delete from 命令来删除 MySQL 数据表中的记录。
delete FROM 表名 [where 条件子句];
--例如;delete from student where sname='张三';