MySql在create语句中定义外键约束?
CONSTRAINT `FK936FCAF21DB1FD15` FOREIGN KEY (`cid`) REFERENCES `category` (`cid`)
FK936FCAF21DB1FD15是约束的名字,然后意思是本表的cid被 一个名字叫做category的表中的cid所约束,或者说一致。
ENGINE=InnoDB是使能使用外键,事务等功能,需要用到innodb引擎。
AUTO_INCREMENT=37用来指定一个自增的初始值为37
如何查看MySQL数据库的create database语句
打开cmd,输入mysql -u 用户名 -p回车根据提示输入密码
进入mysql数据库控制台
查看当前数据库中存在那些数据库,使用show databases语句
使用show create database 数据库名 格式来查看数据库的详细创建信息
通过在show create database语句后面追加 \G参数来格式化输出信息,便于查看
mysql创建用户并给与一个完整的数据库,怎么写语句
1、用管理员登陆mysql
2、创建数据库create database db01;
3、创建用户
user01只能本地访问
CREATE USER user01@'localhost' IDENTIFIED BY 'password1';
user02可以远程访问
CREATE USER user02@'%' IDENTIFIED BY 'password1';
4、修改user01密码
SET PASSWORD FOR 'user01'@'localhost' = PASSWORD('password2');
5、授权
a)、user01管理db01全部权限
GRANT ALL PRIVILEGES ON db01.* TO user01;
b)、user02查看权限,并修改密码
GRANT SELECT ON *.* TO 'user02'@'%' IDENTIFIED by 'password2';
mysql怎么用sql语句创建表
DROP?TABLE?IF?EXISTS?`user_info`;
CREATE?TABLE?`user_info`?(
`id`?int(11)?NOT?NULL?AUTO_INCREMENT,
`name`?varchar(20)?NOT?NULL,
`sex`?enum(F,M,S),
`salary`?int(11)?DEFAULT?'0',
`department`??varchar(30),
PRIMARY?KEY?(`id`)
)?ENGINE=MyISAM??DEFAULT?charset=utf-8;
注意:
(1)MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。
(2)MyISAM?类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持。
(3)InnoDB?提供事务支持以及外键等高级数据库功能。
因此在创建表的时候你可以根据不同的需求进行engine的选择
mysql新建一个表的语句是什么?
create table gbook(id int primary key autoincrement, name varchar(20) not null, sex char(2) not null, email varchar(30), info varchar(200), ip varchar(20), time_at now()) 这样就可以了,其他的字段没什么说的。我只说下最后的时间那里,我使用了函数now(),该函数能够返回当前的时间,格式如下:`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中。 你这里的time_at应该是登陆或者这侧时间,取用系统的当前时间比较合适。所以这里使用了函数now()来获取系统的当前时间能够精确到毫秒!~
Navicat for MySQL界面下如何用SQL语句创建表?
选择一个数据库,点击“查询”,在右侧点击“创建查询”,输入SQL语句,点击“执行”就可以了,示例SQL:
CREATE TABLE `test`.`users` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`age` int(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT charset=utf-8;
MYSQL插入语句问题
INSERT INTO mt_message (`id`,`name` ,`tel` ,`email` )VALUES (NULL,'111111111', '11', '1')
INSERT INTO mt_message(`id` ,`name` ,`tel` ,`email` ,`qita` ,`content` ,`shijian` ,`user` ,`huifu` ,`shenhe`
//)VALUES (NULL , '1', '2', '', '', '', NOW( ) , '', '', '')
只能说明:你从email开始后面的字段其中有一个是不能为空的,而且没有初始值
所以你第一个语句插入失败了
我估计应该问题就是在你的时间(shijian)字段,因为后面基本都是空的,只有时间不是
你可以去检查一个你的这张message表,在mysql命令行用:desc message
检查数据表的字段名和字段属性,如果不行你可以重新建立数据表的
要是想知道出错在哪里,你可以这样写:
<?php
//..上面程序略
$sql="INSERT INTO mt_message (`id`,`name` ,`tel` ,`email` )VALUES (NULL,'111111111', '11', '1')";
$query=mysql_query($sql);
//执行
if($query)
//执行成功
echo 'OK';
else
echo '插入失败,错误报告是:'.mysql_error();
//输出mysql错误信息函数:mysql_error();
?>
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于?Oracle?旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配?PHP?和?Apache?可组成良好的开发环境。
MySQL语句创建表
【1】建立员工档案表
要求字段:员工员工编号,员工姓名,性别,工资,email,入职时间,部门。
【2】合理选择数据类型及字段修饰符,要求有NOT NULL,auto_increment, primary key等。
[sql] view plain copy
--
-- make by kakane
--
DROP TABLE IF EXISTS `workers_info`;
CREATE TABLE `workers_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`workername` varchar(20) NOT NULL,
`sex` enum(F,M,S),
`salary` int(11) DEFAULT '0',
`email` varchar(30),
`EmployedDates` date,
`department` varchar(30),
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT charset=utf-8;
mysql> alter table workers_info ADD sex enum('F','M','S');[sql] view plain copy
【3】查看表的结构
[html] view plain copy
mysql> desc workers_info;
【4】新增qq和tel字段,要求tel字段位于email前,要求入职时间是最后一个字段mysql> ALTER TABLE workers_info ADD tel varchar(15) after salary;[sql] view plain copy
mysql> ALTER TABLE workers_info ADD qq int;ALTER TABLE workers_info MODIFY EmployedDates date after qq;【5】把email字段修改成mailbox
mysql> ALTER TABLE workers_info CHANGE email mailbox varchar(30);【6】向表里添加10条记录
mysql> INSERT INTO workers_info values(NULL,'xing',10000,'1598232123','xing@qq.com','yanfa',736019646,20121221);[sql] view plain copy
mysql> INSERT INTO workers_info (workername,salary,tel,mailbox,department,qq,EmployedDates) values('xing',10000,'1598232123','xing@qq.com','yanfa',736019646,20121221);【7】修改其中两条记录的tel和mailbox
mysql> UPDATE workers_info SET mailbox = 'haha@qq.com' WHERE id = 14;[sql] view plain copy
mysql> UPDATE workers_info SET mailbox = 'haha@qq.com',tel='1246543423' WHERE id = 13;【8】查看所添加记录
mysql> select * from workers_info;
【9】查看姓名和入职时间记录
mysql> select workername,EmployedDates from workers_info;【10】查询入职时间在2003年以前的
[sql] view plain copy
mysql> select * from workers_info where year(EmployedDates) < 2003;[sql]="" view="" plain="">
【11】查询工资最高和最低的员工姓名
[sql] view plain copy
mysql> select * from workers_info ORDER BY salary limit 1;mysql> select * from workers_info ORDER BY salary desc limit 1;【12】查询平均工资
[sql] view plain copy
mysql> select avg(salary) from workers_info;[sql] view plain copy
【13】统计男员工人数、女员工人数
[sql] view plain copy
mysql> select count(男) from workers_info where sex="M";mysql> select count(男) from workers_info where sex="M";【14】按照入职时间先后进行排序,并显示前5位员工姓名[sql] view plain copy
mysql> select * from workers_info ORDER BY EmployedDates limit 5;
mysql怎么用sql语句创建存储过程
可以在客户端里面直接写 比如用 navicat 就写:
delimiter?$$;
create?procedure?lucia_proc16(count?int)
begin
DECLARE?name_proc?VARCHAR(20)?CHARACTER?SET?utf8;
DECLARE?sex_proc?VARCHAR(4)?CHARACTER?SET?utf8;
DECLARE?age_proc?INT(10);
DECLARE?class_proc?VARCHAR(20)?CHARACTER?SET?utf8;
DECLARE?Addr_proc?VARCHAR(50)?CHARACTER?SET?utf8;
DECLARE?i?INT;
set?i?=?1;
set?sex_proc?=?'女';
set?age_proc?=?20;
set?class_proc?=?'山治班';
set?Addr_proc?=?'北京市朝阳区';
while?i<>
set?name_proc?=?CONCAT('露西亚',i);
insert?into?students(Name,Sex,age,class,Addr)values(name_proc,sex_proc,age_proc,class_proc,Addr_proc);
set?i?=?i+1;
end?while;
end
$$;
delimiter;
call?lucia_proc16(500);
这个就是一个循环插入 500 条记录的 sp 效果如下:
mysql用sql语句创建表和数据库怎么设置字符编码'
方法如下:
*
我们先建一个DEMO表,来做我们今天的实现,建表语句如下:
CREATE TABLE
DEMO
(
NAME VARCHAR(50) COMMENT '姓名',
SEX CHAR(1) COMMENT '性别',
PRIMARY KEY (NAME)
)
ENGINE=InnoDB DEFAULT charset=utf-8 COMMENT='例子表';
并且select查询一下,如下图
*
增加一个AGE字段,
ALTER TABLE DEMO ADD AGE CHAR(3);
select查询一下,如下图
请对比上下图,可以发现 多出了一个AGE字段,此处是CHAR类型的。
*
那么如何删除我们刚加的字段呢,
ALTER TABLE DEMODROP COLUMN AGE;
select查询一下,如下图
请对比上下图,可以发现 AGE字段被删除掉了
*
我们在把这个字段加回来
ALTER TABLE DEMO ADD AGE CHAR(3);,
我们用视图工具DBVISUAL看下表机构,这时AGE字段是CHAR类型的
*
我们如果需要把这个字段修改为VARCHAR类型的怎么办呢,
ALTER TABLE DEMO MODIFY ?AGE ? VARCHAR(20),
然后我们在用视图工具DBVISUAL看下表机构,这时AGE字段是VARCHAR类型的
*
转载请注明出处句子大全网 » MySql在create语句中定义外