使用cmd访问mysql数据库
1、安装数据库 2、服务(我的电脑->右键->管理->服务->mysql)是否启动(如果没启动就右键启动) 3、a.在cmd中进入mysql安装目录的bin文件夹,直接使用mysql登录。 b.配置环境变量,直接在cmd的任何目录中使用mysql命令登录。 c.直接开始菜单-mysql-cmd窗口-直接输入密码 如果使用a,b 方式,则需要完整的登录命令: mysql -h host_name -u user_name -p password:当连接MySQL服务器不在同台主机时,填写主机名或IP地址(u:登录MySQL的用户名,P:登录MySQL的密码) 注意:密码如果写在命令行的时候一定不能有空格。如果使用的系统为linux并且登录用户名字与MySQL的用户名相同即可不用输入用户名密码,linux默认root登陆, windows默认用户是ODBC。 显示所有的数据库: show databases; 创建数据库: create database 数据库名; 删除数据库: drop database 数据库名; 指定使用哪一个数据库:(切换数据库,之后的操作全是对此数据库进行的操作) use 数据库名; 显示默认数据库中的所有表: show tables;(显示当前库的所有表,使用之前先必须指定哪一个数据库) 创建表:(varchar表示字符串,1个长度表示1个字符即1个汉字) create table 表名( 列名1 类型 , 列名2 类型 //示例 id int PRIMARY KEY auto_increment, name varchar(4), sex int, age int, stuNum varchar(10) ) 添加表数据:(数据库中的字符串用单引号括起来) insert into t_students(表名) values('jbl',1,20,'123'); -- 选择插入某些字段 -- 在表名后添加小括号,在小括号里面填入要插入的字段名 -- 如果表名后不指定要插入字段,则默认要把所有字段内容赋值 INSERT INTO t_class0225(id,`name`,age,`address`) VALUES(NULL,'小李',18,'延龙') INSERT INTO t_class0225(id,age,`address`) VALUES(NULL,18,'延龙') 显示表(查询)某一个表的数据:(*:表示通配符,通配所有字段) select * from t_students(表名);//表示所有字段全部显示 select name,age(字段名) t_students(表名);//只显示姓名和年龄字段 修改表数据:(带条件,否则会把整个表的都改了) where:指定修改某一行的位置 and:表示并且,用来指定多个条件(一个条件已经不足以确定一行) update 表名 set `字段名`=修改后的内容 where 字段名=表中某数据; 删除表数据:(一定要带条件where,否则会把整个表的数据都删了) or:表示或者,多个条件可以使用()小括号,用法和java一样 delete from 表名 where 字段名=表中某数据; 查询本机IP: com中输入ipconfig 主键:PRIMARY KEY 数据库每一行的唯一标识,不能重复。 SQL语句关键字和函数名不区分大小写(Linux区分,Windows不区分) 数据类型: 数值类型: int,smallint,float,double 货币数据类型: DECIMAL(M,D) 表示数小数 M:整数位数+小数位数的总和 D:小数位数 整数位数不能超过M-D 字符串类型: char(M):定长的字符串 M:长度 varchar(M):可变长的字符串 text:小文本字符串 时间类型: Date: YYYY-MM-DD time: hh:mm:ss DateTime: YYYY-MM-DD hh:mm:ss 布尔类型: bit AUTO_INCREMENT: 自动标识列,在需要产生唯一标志符号或者顺序值时候,可用此属性。值一般从1开始,每行增加1,在插入NULL到一个AUTO_INCREMENT列时, MySQL会插入一个比该列中当前最大值大1 的值,一个表中最多能有一个有此属性的列。对于想使用此属性的列应该定义为NOT NULL,并定义为 PRIMARY KEY 或者定义为UNIQUE键。(只能用在int类型上,每一张表中只能有一个自动递增字段。) UNSIGNED: 无符号,此属性禁用负值,将数值的取值范围从零开始。 NULL和NOT NULL 默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOT NULL,则必须在插入值时在此字段添入值,不允许插入NULL值。 DEFAULT 可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加DEFAULT后指定值。 ZEROFILL 前导零填充数值类型值以达到列的显示宽度。 DEFAULT cur_timestamp 创建新记录时默认保存当前时间(仅适用timestamp数据列) ON UPDATE cur_timestamp 修改记录时默认保存当前时间(仅适用timestamp数据列) 数据表类型: MyISAM:成熟、稳定和易于管理 InnoDB:加入事物、数据行级锁定机制、外键约束条件、崩溃恢复等新功能 HEAP:只存在于内存中,可做临时表 1、确定主外键关系,两个表,在外键表中引用主键表的id 2、指定外键所对应的主键表,主键字段名 外键:foreign key(外键字段) references 表名(引用表中的某字段) (自动检查外键是否匹配,仅适用InnoDB) create table score( cid int not null auto_increment primary key, score int, sid int, foreign key(sid) references t_student(id) ); 主表和从表 : 1、当主表中没有对应的记录时,不能将记录添加到子表 ——成绩表中不能出现在学员信息表中不存在的学号; 2、不能更改主表中的值而导致子表中的记录孤立 ——把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变; 3、子表存在与主表对应的记录,不能从主表中删除该行 ——不能把有成绩的学员删除了 4、删除主表前,先删子表 ——先删学员成绩表、后删除学员信息表 比较运算符: = : 相等(两个数不能为空) != 或者 <> : 不等于 <=> 和=一样,只是多了比较null 例子:SELECT 1=NULL SELECT 1<=>NULL BETWEEN运算符:用于检验一个值(或者一个求值表达式)是否存在一个指定的范围内: IN运算符:用于检验一个值(或者一个求值表达式)是否包含在一个指定的值集合中。 LIKE运算符:它通过在表达式中允许使用专门的通配字符,可以找出与指定搜索字符串全部或部分匹配的记录。 “%” (百分号) 代表任意长度(长度可以为0)的字符串 举例: a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab 等都满足该匹配串 “_ ”(下横线) 代表任意单个字符 举例: a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串